mothra: dynamically allocate buffer for refresh url (was 20 bytes stack buffer before) (thanks BurnZeZ for reporting)
This commit is contained in:
parent
fb1551e997
commit
8a2d962570
1 changed files with 9 additions and 8 deletions
|
@ -268,8 +268,9 @@ int pl_nextc(Hglob *g){
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
||||||
char *unquot(char *dst, char *src, int len){
|
char *unquot(char *src){
|
||||||
char *e;
|
char *e, *dst;
|
||||||
|
int len;
|
||||||
|
|
||||||
e=0;
|
e=0;
|
||||||
while(*src && strchr(" \t\r\n", *src))
|
while(*src && strchr(" \t\r\n", *src))
|
||||||
|
@ -279,10 +280,9 @@ char *unquot(char *dst, char *src, int len){
|
||||||
src++;
|
src++;
|
||||||
}
|
}
|
||||||
if(e==0) e=strchr(src, 0);
|
if(e==0) e=strchr(src, 0);
|
||||||
len--;
|
len=e-src;
|
||||||
if((e - src) < len)
|
dst = emalloc(len+1);
|
||||||
len=e-src;
|
memmove(dst, src, len);
|
||||||
if(len>0) memmove(dst, src, len);
|
|
||||||
dst[len]=0;
|
dst[len]=0;
|
||||||
return dst;
|
return dst;
|
||||||
}
|
}
|
||||||
|
@ -877,8 +877,9 @@ void plrdhtml(char *name, int fd, Www *dst){
|
||||||
str++;
|
str++;
|
||||||
pl_htmloutput(&g, 0, "[refresh: ", 0);
|
pl_htmloutput(&g, 0, "[refresh: ", 0);
|
||||||
free(g.state->link);
|
free(g.state->link);
|
||||||
g.state->link=unquot(buf, str, sizeof(buf));
|
g.state->link=unquot(str);
|
||||||
pl_htmloutput(&g, 0, str, 0);
|
pl_htmloutput(&g, 0, g.state->link, 0);
|
||||||
|
free(g.state->link);
|
||||||
g.state->link=0;
|
g.state->link=0;
|
||||||
pl_htmloutput(&g, 0, "]", 0);
|
pl_htmloutput(&g, 0, "]", 0);
|
||||||
g.linebrk=1;
|
g.linebrk=1;
|
||||||
|
|
Loading…
Reference in a new issue