]> granicus.if.org Git - check/commitdiff
Fix packing of NULL strings (causing problems under Solaris)
authoramalec <amalec@64e312b2-a51f-0410-8e61-82d0ca0eb02a>
Thu, 25 Oct 2001 22:25:11 +0000 (22:25 +0000)
committeramalec <amalec@64e312b2-a51f-0410-8e61-82d0ca0eb02a>
Thu, 25 Oct 2001 22:25:11 +0000 (22:25 +0000)
git-svn-id: svn+ssh://svn.code.sf.net/p/check/code/trunk@112 64e312b2-a51f-0410-8e61-82d0ca0eb02a

check/src/check_pack.c

index ceb7647a968e87fce8877d62b91fbf5cd2685cef..8c58cd339b6832eeea44b48d9b8581f1645a0fd9 100644 (file)
@@ -138,22 +138,26 @@ static void pack_str (char **buf, char *val)
     strsz = strlen (val) + 1;
 
   pack_int(buf,strsz);  
-  n = sprintf (*buf, "%s", val);
-
-  *buf += n + 1;
+  if (strsz > 0) {
+    n = sprintf (*buf, "%s", val);
+    *buf += n + 1;
+  }
+  
 }  
 
 static char *upack_str (char **buf)
 {
-  char *val;
+  char *val = NULL;
   int strsz;
 
   val = emalloc (CK_MAXMSG);
   
   strsz = upack_int (buf);
-  
-  strncpy (val, *buf, strsz);
-  *buf += strsz;
+
+  if (strsz > 0) {
+    strncpy (val, *buf, strsz);
+    *buf += strsz;
+  }
 
   return val;
 }