applying fix for:
authorPaul Fox <pgf@brightstareng.com>
Wed, 20 Jul 2005 18:42:52 +0000 (18:42 -0000)
committerPaul Fox <pgf@brightstareng.com>
Wed, 20 Jul 2005 18:42:52 +0000 (18:42 -0000)
    0000185: httpd infinite loop when piping to CGI script

networking/httpd.c

index 94fcfc8c18bcd21512f17787659321bb70623e6c..e3f4027dcad130f3ad0ce68f5f2c2ee92de3fab0 100644 (file)
@@ -1259,6 +1259,8 @@ static int sendCgi(const char *url,
                        post_readed_idx += count;
                        if(post_readed_size == 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)) {
                count = bodyLen > sizeof(wbuf) ? sizeof(wbuf) : bodyLen;
@@ -1266,7 +1268,7 @@ static int sendCgi(const char *url,
                if(count > 0) {
                        post_readed_size += count;
                        bodyLen -= count;
-      } else {
+               } else {
                        bodyLen = 0;    /* closed */
                }
       }