view archive/readpst.c.diff @ 393:ffbb5e3f2551

Add missing linking with zlib and libpthread/librt The uncompress and sem_* functions are used by various parts of the code but the files built from that code were not linked with zlib/pthread/rt. This fixes building with the --no-add-needed linker option. Fixes: https://bugs.debian.org/604796
author Paul Wise <pabs3@bonedaddy.net>
date Mon, 23 Dec 2019 12:23:22 +0800
parents de3753c3160a
children
line wrap: on
line source

Index: readpst.c
===================================================================
--- readpst.c	(revision 45)
+++ readpst.c	(working copy)
@@ -1396,6 +1396,7 @@
 // char *rfc2426_escape(char *str) {{{1
 char *rfc2426_escape(char *str) {
   static char *buf = NULL;
+  static int buflen = 0;
   char *a, *b;
   int x, y, z;
   DEBUG_ENT("rfc2426_escape");
@@ -1411,9 +1412,10 @@
   z = chr_count(str, '\r');
   x = strlen(str) + y - z;
 
-  if ( (y - z) == 0 )	// resize buffer if needed
+  if ( x + 1 > buflen )	// resize buffer if needed
   {
     buf = (char*) realloc(buf, x + 1); // don't forget room for the NUL
+    buflen = x + 1;
 	if ( buf == NULL )
 	{
       fprintf(stderr, "Error: rfc2426_escape(): realloc(%d) returned NULL!\n", x + 1);