defs: fix strscpy null pointer dereference
authorFerry Huberts <ferry.huberts@pelagic.nl>
Wed, 24 Oct 2012 13:22:18 +0000 (15:22 +0200)
committerFerry Huberts <ferry.huberts@pelagic.nl>
Wed, 24 Oct 2012 13:23:07 +0000 (15:23 +0200)
Coverity:
CID 739649 (#1 of 1): Dereference after null check (FORWARD_NULL)
At (5): Passing null pointer "dest" to function
        "strncpy(char * restrict, char const * restrict, size_t)", which
        dereferences it.

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
src/defs.h

index d4a0c46..99ff32e 100644 (file)
@@ -138,13 +138,16 @@ strscpy(char *dest, const char *src, size_t size)
   if (NULL == src)
     fprintf(stderr, "Warning: src is NULL in strscpy!\n");
 #endif /* !defined(NODEBUG) && defined(DEBUG) */
-  if (NULL != dest && NULL != src) {
-    /* src does not need to be null terminated */
-    if (0 < size--)
-      while (l < size && 0 != src[l])
-        l++;
-    dest[l] = 0;
+  if (!dest || !src) {
+    return NULL;
   }
+
+  /* src does not need to be null terminated */
+  if (0 < size--)
+    while (l < size && 0 != src[l])
+      l++;
+  dest[l] = 0;
+
   return strncpy(dest, src, l);
 }