mirror of
https://github.com/3proxy/3proxy.git
synced 2025-02-24 02:55:40 +08:00
Handle malformed HTTP headers without \r
This commit is contained in:
parent
ad9b0046d9
commit
f8a7266bdf
10
src/proxy.c
10
src/proxy.c
@ -443,12 +443,16 @@ for(;;){
|
||||
continue;
|
||||
}
|
||||
if(param->transparent && i > 6 && !strncasecmp((char *)buf + inbuf, "Host:", 5)){
|
||||
unsigned char c;
|
||||
sb = (unsigned char *)strchr((char *)(buf+inbuf), ':');
|
||||
if(!sb)continue;
|
||||
++sb;
|
||||
while(isspace(*sb))sb++;
|
||||
se = (unsigned char *)strchr((char *)sb, '\r');
|
||||
if(se) *se = 0;
|
||||
(se = (unsigned char *)strchr((char *)sb, '\r')) || (se = (unsigned char *)strchr((char *)sb, '\n'));
|
||||
if(se) {
|
||||
c = *se;
|
||||
*se = 0;
|
||||
}
|
||||
if(!param->hostname){
|
||||
parsehostname((char *)sb, param, 80);
|
||||
}
|
||||
@ -460,7 +464,7 @@ for(;;){
|
||||
myfree(req);
|
||||
req = newbuf;
|
||||
}
|
||||
if(se)*se = '\r';
|
||||
if(se)*se = c;
|
||||
}
|
||||
if(ftp && i > 13 && (!strncasecmp((char *)(buf+inbuf), "authorization", 13))){
|
||||
sb = (unsigned char *)strchr((char *)(buf+inbuf), ':');
|
||||
|
Loading…
Reference in New Issue
Block a user