>Number:         1415
>Category:       mod_proxy
>Synopsis:       POSTs with Content-Length: header have any trailing CRLF 
>stripped from body
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    apache
>State:          open
>Class:          sw-bug
>Submitter-Id:   apache
>Arrival-Date:   Thu Nov 13 21:50:01 PST 1997
>Last-Modified:
>Originator:     [EMAIL PROTECTED]
>Organization:
apache
>Release:        1.2.4
>Environment:
Linux 2.0.14
>Description:
Not really an Apache problem, but other proxies don't behave the same way
and so it looks bad for Apache.

A CRLF in a POST body is probably not a requirement in HTTP/1.x, however
some clients transmit it (Communicator) and some servers expect it (Oracle).
Even though the body length matches the Content-length: header, the server
in question fails to proceed with the request.
>How-To-Repeat:
Connect to: 
http://www.transigo.net.au/transigo/pp_dirs_su_registration1.org_entry_page
And click the Submit button.  The server waits forever to proceed.
>Fix:
Perhaps include a ServerMatch rule to add a CRLF to the end of a POST body.

This patch seems to work, but should be checked by a REAL C programmer:

*** ../../../../apache_1.2.4/src/modules/proxy/proxy_http.c     Thu Aug 21 12:44
:30 1997
--- proxy_http.c        Fri Nov 14 14:15:44 1997
***************
*** 275,280 ****
--- 275,284 ----
      {
        while ((i = get_client_block(r, buffer, HUGE_STRING_LEN)) > 0)
              bwrite(f, buffer, i);
+ /* JPL - send CRLF if not at end of buffer */
+       if (i >= 2 && buffer[i-2] != CR || buffer[i-1] != LF) {
+               bputs("\015\012", f);
+       }
      }
      bflush(f);
      kill_timeout(r);
%0
>Audit-Trail:
>Unformatted:

Reply via email to