null terminate parsed argument lists
authorewt <devnull@localhost>
Sat, 4 Sep 1999 19:37:00 +0000 (19:37 +0000)
committerewt <devnull@localhost>
Sat, 4 Sep 1999 19:37:00 +0000 (19:37 +0000)
CVS patchset: 3256
CVS date: 1999/09/04 19:37:00

popt/poptparse.c

index 92af27a..c64ce0f 100644 (file)
@@ -93,10 +93,11 @@ int poptParseArgvString(const char * s, int * argcPtr, char *** argvPtr) {
        argc++, buf++;
     }
 
-    dst = malloc(argc * sizeof(*argv) + (buf - bufStart));
+    dst = malloc((argc + 1) * sizeof(*argv) + (buf - bufStart));
     argv2 = (void *) dst;
-    dst += argc * sizeof(*argv);
+    dst += (argc + 1) * sizeof(*argv);
     memcpy(argv2, argv, argc * sizeof(*argv));
+    argv2[argc] = NULL;
     memcpy(dst, bufStart, buf - bufStart);
 
     for (i = 0; i < argc; i++) {