From faa9e65a23cdb2e3971b36d7a22fb9d04dabb52c Mon Sep 17 00:00:00 2001 From: Reyk Floeter Date: Tue, 13 Jan 2015 10:13:45 +0100 Subject: server_fcgi.c revision 1.45: Abort if fcgi_chunked is not true to avoid sending additional garbage after the response. Found by Erik Lax ok florian@ --- server_fcgi.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/server_fcgi.c b/server_fcgi.c index a6055cd..012e2ea 100644 --- a/server_fcgi.c +++ b/server_fcgi.c @@ -1,4 +1,4 @@ -/* $OpenBSD: server_fcgi.c,v 1.44 2015/01/04 22:23:58 chrisz Exp $ */ +/* $OpenBSD: server_fcgi.c,v 1.45 2015/01/13 08:54:01 reyk Exp $ */ /* * Copyright (c) 2014 Florian Obser @@ -674,16 +674,15 @@ server_fcgi_writechunk(struct client *clt) } 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++) - return (0); - if (clt->clt_fcgi_chunked) { + /* If len is 0, make sure to write the end marker only once */ + if (len == 0 && clt->clt_fcgi_end++) + return (0); if (server_bufferevent_printf(clt, "%zx\r\n", len) == -1 || server_bufferevent_write_chunk(clt, evb, len) == -1 || server_bufferevent_print(clt, "\r\n") == -1) return (-1); - } else + } else if (len) return (server_bufferevent_write_buffer(clt, evb)); return (0); -- cgit v1.2.3-54-g00ecf