aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/extra_opts.c4
-rw-r--r--lib/extra_opts.h4
2 files changed, 4 insertions, 4 deletions
diff --git a/lib/extra_opts.c b/lib/extra_opts.c
index d46d124f..8c17fa4a 100644
--- a/lib/extra_opts.c
+++ b/lib/extra_opts.c
@@ -122,7 +122,7 @@ char **np_extra_opts(int *argc, char **argv, const char *plugin_name){
if(argv_new==NULL) die(STATE_UNKNOWN, _("malloc() failed!\n"));
/* starting with program name */
- argv_new[0]=strdup(argv[0]);
+ argv_new[0]=argv[0];
argc_new=1;
/* then parsed ini opts (frying them up in the same run) */
while(extra_args){
@@ -132,7 +132,7 @@ char **np_extra_opts(int *argc, char **argv, const char *plugin_name){
free(ea1);
}
/* finally the rest of the argv array */
- for (i=1; i<*argc; i++) argv_new[argc_new++]=strdup(argv[i]);
+ for (i=1; i<*argc; i++) argv_new[argc_new++]=argv[i];
*argc=argc_new;
/* and terminate. */
argv_new[argc_new]=NULL;
diff --git a/lib/extra_opts.h b/lib/extra_opts.h
index 8ce09036..0cb47fb1 100644
--- a/lib/extra_opts.h
+++ b/lib/extra_opts.h
@@ -11,8 +11,8 @@
* ini-procesed arguments always come first (in the ord of --extra-opts
* arguments). If no --extra-opts arguments are provided or returned nothing
* it returns **argv otherwise the new array is returned. --extra-opts are
- * always removed from **argv and the new array and all its elements can be
- * freed with free();
+ * always removed from **argv. The original pointers from **argv are kept in
+ * the new array to preserve ability to overwrite arguments in processlist.
*/
char **np_extra_opts(int *argc, char **argv, const char *plugin_name);