plumber: loop will go out of bounds when *++s == '\0'; replace with strstr
This commit is contained in:
parent
ed3a3c4dd4
commit
12e136332a
1 changed files with 3 additions and 7 deletions
|
@ -728,7 +728,7 @@ morerules(uchar *text, int done)
|
||||||
{
|
{
|
||||||
int n;
|
int n;
|
||||||
Ruleset *rs;
|
Ruleset *rs;
|
||||||
uchar *otext, *s, *endofrule;
|
uchar *otext, *p;
|
||||||
|
|
||||||
pushinput("<rules input>", -1, text);
|
pushinput("<rules input>", -1, text);
|
||||||
if(done)
|
if(done)
|
||||||
|
@ -738,15 +738,11 @@ morerules(uchar *text, int done)
|
||||||
* Help user by sending any full rules to parser so any parse errors will
|
* Help user by sending any full rules to parser so any parse errors will
|
||||||
* occur on write rather than close. A heuristic will do: blank line ends rule.
|
* occur on write rather than close. A heuristic will do: blank line ends rule.
|
||||||
*/
|
*/
|
||||||
endofrule = nil;
|
if((p = (uchar*)strstr((char*)text, "\n\n")) == nil){
|
||||||
for(s=text; *s!='\0'; s++)
|
|
||||||
if(*s=='\n' && *++s=='\n')
|
|
||||||
endofrule = s+1;
|
|
||||||
if(endofrule == nil){
|
|
||||||
popinput();
|
popinput();
|
||||||
return text;
|
return text;
|
||||||
}
|
}
|
||||||
input->end = endofrule;
|
input->end = p+2;
|
||||||
}
|
}
|
||||||
for(n=0; rules[n]; n++)
|
for(n=0; rules[n]; n++)
|
||||||
;
|
;
|
||||||
|
|
Loading…
Reference in a new issue