diff options
author | Thomas Guyot-Sionnest <dermoth@users.sourceforge.net> | 2008-11-05 16:15:59 +0000 |
---|---|---|
committer | Thomas Guyot-Sionnest <dermoth@users.sourceforge.net> | 2008-11-05 16:15:59 +0000 |
commit | 3011838fe9796f24ad3d197057890042b527ef9d (patch) | |
tree | f096a06be5c65e49c46ee0c85c591cda08383a50 /lib/extra_opts.c | |
parent | f3e0909e124674db029dbfbfb4ae80de94a5d89f (diff) | |
download | monitoring-plugins-3011838fe9796f24ad3d197057890042b527ef9d.tar.gz |
Fix calculation of extra-opts parameters.
By reading the current list instead of the additional one when counting parameters, extra-opts calculation was allocating insuficient space for the final array if later sections contained more arguments than the sum of all previously parsed sections.
git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@2069 f882894a-f735-0410-b71e-b25c423dba1c
Diffstat (limited to 'lib/extra_opts.c')
-rw-r--r-- | lib/extra_opts.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/lib/extra_opts.c b/lib/extra_opts.c index b555417a..7e50c178 100644 --- a/lib/extra_opts.c +++ b/lib/extra_opts.c @@ -103,14 +103,13 @@ char **np_extra_opts(int *argc, char **argv, const char *plugin_name){ ea_tmp=extra_args; while(ea_tmp->next) { ea_tmp=ea_tmp->next; - ea_num++; } ea_tmp->next=ea1; + while(ea1=ea1->next) ea_num++; } ea1=ea_tmp=NULL; } - /* lather, rince, repeat */ - } + } /* lather, rince, repeat */ if(ea_num==*argc && extra_args==NULL){ /* No extra-opts */ |