diff options
author | Thomas Guyot-Sionnest <dermoth@users.sourceforge.net> | 2008-03-15 20:34:15 +0000 |
---|---|---|
committer | Thomas Guyot-Sionnest <dermoth@users.sourceforge.net> | 2008-03-15 20:34:15 +0000 |
commit | 40c123148a9d84218667124a97283f7cb93bfa50 (patch) | |
tree | 58fcbb765089e53d2874200e8f282051e3f699f0 /lib/parse_ini.c | |
parent | ffab7ee68b32d44ae2f35f688f417cd0109b0b45 (diff) | |
download | monitoring-plugins-40c123148a9d84218667124a97283f7cb93bfa50.tar.gz |
Fix handling of leading and trailing spaces in stanza
git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1947 f882894a-f735-0410-b71e-b25c423dba1c
Diffstat (limited to 'lib/parse_ini.c')
-rw-r--r-- | lib/parse_ini.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/lib/parse_ini.c b/lib/parse_ini.c index b555316e..38bcb39b 100644 --- a/lib/parse_ini.c +++ b/lib/parse_ini.c @@ -126,6 +126,8 @@ static np_arg_list* read_defaults(FILE *f, const char *stanza){ stanzastate=WRONGSTANZA; for(i=0; i<stanza_len; i++){ c=fgetc(f); + /* Strip leading whitespace */ + if(i==0) for(c; isspace(c); c=fgetc(f)); /* nope, read to the end of the line */ if(c!=stanza[i]) { GOBBLE_TO(f, c, '\n'); @@ -135,6 +137,8 @@ static np_arg_list* read_defaults(FILE *f, const char *stanza){ /* if it matched up to here and the next char is ']'... */ if(i==stanza_len){ c=fgetc(f); + /* Strip trailing whitespace */ + for(c; isspace(c); c=fgetc(f)); if(c==']') stanzastate=RIGHTSTANZA; } break; @@ -223,7 +227,7 @@ static int add_option(FILE *f, np_arg_list **optlst){ /* calculate the length of "--foo" */ opt_len=1+optend-optptr; /* 1-character params needs only one dash */ - if (opt_len==1) + if(opt_len==1) cfg_len=1+(opt_len); else cfg_len=2+(opt_len); @@ -234,7 +238,7 @@ static int add_option(FILE *f, np_arg_list **optlst){ cfg_len+=1+val_len; } /* if valptr==valend then we have "=" but no "bar" */ - else if (valptr==lineend) { + else if(valptr==lineend) { equals=1; cfg_len+=1; } @@ -248,7 +252,7 @@ static int add_option(FILE *f, np_arg_list **optlst){ read_pos=0; optnew->arg=(char *)malloc(cfg_len+1); /* 1-character params needs only one dash */ - if (opt_len==1) { + if(opt_len==1) { strncpy(&optnew->arg[read_pos], "-", 1); read_pos+=1; } else { @@ -263,10 +267,10 @@ static int add_option(FILE *f, np_arg_list **optlst){ optnew->arg[read_pos]='\0'; /* ...and put that to the end of the list */ - if (*optlst==NULL) { + if(*optlst==NULL) { *optlst=optnew; } else { - while (opttmp->next!=NULL) { + while(opttmp->next!=NULL) { opttmp=opttmp->next; } opttmp->next = optnew; |