applying fix for:
0000185: httpd infinite loop when piping to CGI script
This commit is contained in:
@@ -1259,6 +1259,8 @@ static int sendCgi(const char *url,
|
|||||||
post_readed_idx += count;
|
post_readed_idx += count;
|
||||||
if(post_readed_size == 0)
|
if(post_readed_size == 0)
|
||||||
post_readed_idx = 0;
|
post_readed_idx = 0;
|
||||||
|
} else {
|
||||||
|
post_readed_size = post_readed_idx = bodyLen = 0; /* broken pipe to CGI */
|
||||||
}
|
}
|
||||||
} else if(bodyLen > 0 && post_readed_size == 0 && FD_ISSET(a_c_r, &readSet)) {
|
} else if(bodyLen > 0 && post_readed_size == 0 && FD_ISSET(a_c_r, &readSet)) {
|
||||||
count = bodyLen > sizeof(wbuf) ? sizeof(wbuf) : bodyLen;
|
count = bodyLen > sizeof(wbuf) ? sizeof(wbuf) : bodyLen;
|
||||||
@@ -1266,7 +1268,7 @@ static int sendCgi(const char *url,
|
|||||||
if(count > 0) {
|
if(count > 0) {
|
||||||
post_readed_size += count;
|
post_readed_size += count;
|
||||||
bodyLen -= count;
|
bodyLen -= count;
|
||||||
} else {
|
} else {
|
||||||
bodyLen = 0; /* closed */
|
bodyLen = 0; /* closed */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user