- // Transfer the arguments passed in to a new argument array
- for (arg = 0; arg < argc; arg++) {
- newargv[arg] = argv[arg];
- }
- // Ensure the argument list is NULL terminated (for execvp)
- newargv[argc] = NULL;
- // Ensure the first argument matches the command
- newargv[0] = command;
+ if (newargv != NULL) {
+ // Transfer the arguments passed in to a new argument array
+ for (arg = 0; arg < argc; arg++) {
+ newargv[arg] = argv[arg];
+ }
+ // Ensure the argument list is NULL terminated (for execvp)
+ newargv[argc] = NULL;
+ // Ensure the first argument matches the command
+ newargv[0] = command;