]> git.cameronkatri.com Git - pw-darwin.git/commitdiff
Use strndup(3) instead of malloc(3) + memcpy(3)
authorBaptiste Daroussin <bapt@FreeBSD.org>
Sun, 10 May 2015 10:02:09 +0000 (10:02 +0000)
committerBaptiste Daroussin <bapt@FreeBSD.org>
Sun, 10 May 2015 10:02:09 +0000 (10:02 +0000)
Check the return of strndup

pw/pw_conf.c

index 209982c6d205fa4fdda84cdb7e5fbf78b830ba0b..46474a121c061202b42b950055934630a745ceb1 100644 (file)
@@ -34,6 +34,7 @@ static const char rcsid[] =
 #include <string.h>
 #include <ctype.h>
 #include <fcntl.h>
+#include <err.h>
 
 #include "pw.h"
 
@@ -211,15 +212,18 @@ boolean_str(int val)
 char           *
 newstr(char const * p)
 {
-       char           *q = NULL;
+       char    *q;
+       size_t   l;
 
-       if ((p = unquote(p)) != NULL) {
-               int             l = strlen(p) + 1;
+       if ((p = unquote(p)) == NULL)
+               return (NULL);
 
-               if ((q = malloc(l)) != NULL)
-                       memcpy(q, p, l);
-       }
-       return q;
+       l = strlen(p) + 1;
+
+       if ((q = strndup(p, l)) == NULL)
+               err(1, "strndup()");
+
+       return (q);
 }
 
 struct userconf *