Hi,

In the case where httpds fcgi module handles the end marker, it should
abort if fcgi_chunked is not true. Now it sends 8 bytes of garbage after
each request (it's often NUL terminated so it doesn't seem to show up in
browsers). This patched fixed it for me.

Index: usr.sbin/httpd/server_fcgi.c
===================================================================
RCS file: /cvs/src/usr.sbin/httpd/server_fcgi.c,v
retrieving revision 1.44
diff -u -p -u -4 -r1.44 server_fcgi.c
--- usr.sbin/httpd/server_fcgi.c        4 Jan 2015 22:23:58 -0000       1.44
+++ usr.sbin/httpd/server_fcgi.c        12 Jan 2015 14:42:27 -0000
@@ -674,9 +674,9 @@ server_fcgi_writechunk(struct client *cl
        } else
                len = EVBUFFER_LENGTH(evb);
 
        /* If len is 0, make sure to write the end marker only once */
-       if (len == 0 && clt->clt_fcgi_end++)
+       if (len == 0 && (!clt->clt_fcgi_chunked || clt->clt_fcgi_end++))
                return (0);
 
        if (clt->clt_fcgi_chunked) {
                if (server_bufferevent_printf(clt, "%zx\r\n", len) == -1 ||

Reply via email to