autobuf: make 2 functions more robust
authorFerry Huberts <ferry.huberts@pelagic.nl>
Fri, 27 May 2016 00:54:17 +0000 (02:54 +0200)
committerFerry Huberts <ferry.huberts@pelagic.nl>
Fri, 27 May 2016 01:30:25 +0000 (03:30 +0200)
Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
src/common/autobuf.c

index 6ecd5e3..eec8b45 100644 (file)
@@ -166,12 +166,13 @@ abuf_puts(struct autobuf *autobuf, const char *s)
 {
   int len; 
 
-  if (NULL == s) return 0;
+  if (!autobuf || !s) return 0;
   len = strlen(s);
+  if (!len) return 0;
   if (autobuf_enlarge(autobuf, autobuf->len + len + 1) < 0) {
     return -1;
   }
-  strcpy(autobuf->buf + autobuf->len, s);
+  strncpy(autobuf->buf + autobuf->len, s, len + 1);
   autobuf->len += len;
   return len;
 }
@@ -181,12 +182,13 @@ abuf_concat(struct autobuf *autobuf, struct autobuf *s)
 {
   int len;
 
-  if (NULL == s) return 0;
+  if (!autobuf || !s) return 0;
   len = s->len;
+  if (!len) return 0;
   if (autobuf_enlarge(autobuf, autobuf->len + len + 1) < 0) {
     return -1;
   }
-  strcpy(autobuf->buf + autobuf->len, s->buf);
+  strncpy(autobuf->buf + autobuf->len, s->buf, len + 1);
   autobuf->len += len;
   return len;
 }