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;
|
||||
Ruleset *rs;
|
||||
uchar *otext, *s, *endofrule;
|
||||
uchar *otext, *p;
|
||||
|
||||
pushinput("<rules input>", -1, text);
|
||||
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
|
||||
* occur on write rather than close. A heuristic will do: blank line ends rule.
|
||||
*/
|
||||
endofrule = nil;
|
||||
for(s=text; *s!='\0'; s++)
|
||||
if(*s=='\n' && *++s=='\n')
|
||||
endofrule = s+1;
|
||||
if(endofrule == nil){
|
||||
if((p = (uchar*)strstr((char*)text, "\n\n")) == nil){
|
||||
popinput();
|
||||
return text;
|
||||
}
|
||||
input->end = endofrule;
|
||||
input->end = p+2;
|
||||
}
|
||||
for(n=0; rules[n]; n++)
|
||||
;
|
||||
|
|
Loading…
Reference in a new issue