Bug fix - argv needs to terminate with a NULL.
authorSapan Bhatia <sapanb@cs.princeton.edu>
Wed, 2 Dec 2009 20:53:01 +0000 (20:53 +0000)
committerSapan Bhatia <sapanb@cs.princeton.edu>
Wed, 2 Dec 2009 20:53:01 +0000 (20:53 +0000)
src/vsh.c

index 71698c1..9c61664 100644 (file)
--- a/src/vsh.c
+++ b/src/vsh.c
@@ -32,7 +32,7 @@ char **extend_argv(int argc, char **argv, int num_extra_args) {
     char **argv2;
 
     argc2 = argc + num_extra_args;
-    argv2 = (char **) malloc(argc2 * sizeof(char *));
+    argv2 = (char **) malloc((argc2 + 1) * sizeof(char *));
 
     if (!argv2)
         return (char **) NULL;
@@ -40,6 +40,7 @@ char **extend_argv(int argc, char **argv, int num_extra_args) {
     for (i=0; i<argc; i++) {
         argv2[i+num_extra_args]=strdup(argv[i]); 
     }
+    argv2[argc2]=NULL;
 
     return argv2;
 }