markt       2004/11/21 09:22:50

  Modified:    catalina/src/share/org/apache/catalina/servlets
                        CGIServlet.java
  Log:
  Port fix for 32023 from TC5.
  Ensure large uploads are correctly handled.
  
  Revision  Changes    Path
  1.29      +14 -6     
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/CGIServlet.java
  
  Index: CGIServlet.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/CGIServlet.java,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- CGIServlet.java   28 Sep 2004 21:51:49 -0000      1.28
  +++ CGIServlet.java   21 Nov 2004 17:22:49 -0000      1.29
  @@ -1684,7 +1684,15 @@
               ByteArrayOutputStream contentStream = null;
               if(!"".equals(sContentLength)) {
                   byte[] content = new byte[Integer.parseInt(sContentLength)];
  -                int lenRead = stdin.read(content);
  +
  +                // Ensure all of content is read when doing large uploads.
  +                // See bugzilla 32023
  +                int lenRead = 0;
  +                do {
  +                    int partRead = 
stdin.read(content,lenRead,content.length-lenRead);
  +                    lenRead += partRead;
  +                } while (lenRead > 0 && lenRead < content.length);
  +                
                   contentStream = new ByteArrayOutputStream(
                           Integer.parseInt(sContentLength));
                   if ("POST".equals(env.get("REQUEST_METHOD"))) {
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to