From 354cf98360ca9021c89e79e2c728ba632b196364 Mon Sep 17 00:00:00 2001
From: Fabian Keil <fk@fabiankeil.de>
Date: Tue, 14 Jul 2009 18:02:25 +0000
Subject: [PATCH] In parse_client_request(), assume a request is complete if we
 got the whole header and the method doesn't imply a body.

Should break less non-traditional requests than the previous hack.
---
 jcc.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/jcc.c b/jcc.c
index adb5beeb..d637017e 100644
--- a/jcc.c
+++ b/jcc.c
@@ -1,4 +1,4 @@
-const char jcc_rcs[] = "$Id: jcc.c,v 1.270 2009/07/13 17:12:28 fabiankeil Exp $";
+const char jcc_rcs[] = "$Id: jcc.c,v 1.271 2009/07/14 17:50:34 fabiankeil Exp $";
 /*********************************************************************
  *
  * File        :  $Source: /cvsroot/ijbswa/current/jcc.c,v $
@@ -1460,12 +1460,16 @@ static jb_err parse_client_request(struct client_state *csp)
       if (csp->iob->cur[0] != '\0')
       {
          csp->flags |= CSP_FLAG_SERVER_SOCKET_TAINTED;
-         if (!strcmpic(csp->http->gpc, "POST"))
+         if (strcmpic(csp->http->gpc, "GET")
+          && strcmpic(csp->http->gpc, "HEAD")
+          && strcmpic(csp->http->gpc, "TRACE")
+          && strcmpic(csp->http->gpc, "OPTIONS")
+          && strcmpic(csp->http->gpc, "DELETE"))
          {
             /* XXX: this is an incomplete hack */
             csp->flags &= ~CSP_FLAG_CLIENT_REQUEST_COMPLETELY_READ;
             log_error(LOG_LEVEL_CONNECT,
-               "POST request detected. The connection will not be kept alive.");
+               "There might be a request body. The connection will not be kept alive.");
          }
          else
          {
-- 
2.49.0