httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jerenkra...@apache.org
Subject cvs commit: httpd-2.0/modules/http http_protocol.c
Date Tue, 28 May 2002 23:55:54 GMT
jerenkrantz    02/05/28 16:55:54

  Modified:    modules/http http_protocol.c
  Log:
  Switch the limit directive enforcement error paths to match the error handling
  code for invalid chunk sizes.
  
  Revision  Changes    Path
  1.423     +18 -4     httpd-2.0/modules/http/http_protocol.c
  
  Index: http_protocol.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/modules/http/http_protocol.c,v
  retrieving revision 1.422
  retrieving revision 1.423
  diff -u -r1.422 -r1.423
  --- http_protocol.c	28 May 2002 23:38:31 -0000	1.422
  +++ http_protocol.c	28 May 2002 23:55:53 -0000	1.423
  @@ -806,12 +806,19 @@
                * time, stop it here if it is invalid. 
                */ 
               if (ctx->limit && ctx->limit < ctx->remaining) {
  +                apr_bucket_brigade *bb;
                   ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, f->r,
                             "Requested content-length of %" APR_OFF_T_FMT 
                             " is larger than the configured limit"
                             " of %" APR_OFF_T_FMT, ctx->remaining, ctx->limit);
  -                ap_die(HTTP_REQUEST_ENTITY_TOO_LARGE, f->r);
  -                return APR_EGENERAL;
  +                bb = apr_brigade_create(f->r->pool, f->c->bucket_alloc);
  +                e = ap_bucket_error_create(HTTP_REQUEST_ENTITY_TOO_LARGE, NULL,
  +                                           f->r->connection->pool,
  +                                           f->r->connection->bucket_alloc);
  +                APR_BRIGADE_INSERT_TAIL(bb, e);
  +                e = apr_bucket_eos_create(f->r->connection->bucket_alloc);
  +                APR_BRIGADE_INSERT_TAIL(bb, e);
  +                return ap_pass_brigade(f->r->output_filters, bb);
               }
           }
   
  @@ -957,12 +964,19 @@
            * really count.  This seems to be up for interpretation.  */
           ctx->limit_used += totalread;
           if (ctx->limit < ctx->limit_used) {
  +            apr_bucket_brigade *bb;
               ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, f->r,
                             "Read content-length of %" APR_OFF_T_FMT 
                             " is larger than the configured limit"
                             " of %" APR_OFF_T_FMT, ctx->limit_used, ctx->limit);
  -            ap_die(HTTP_REQUEST_ENTITY_TOO_LARGE, f->r);
  -            return APR_EGENERAL;
  +            bb = apr_brigade_create(f->r->pool, f->c->bucket_alloc);
  +            e = ap_bucket_error_create(HTTP_REQUEST_ENTITY_TOO_LARGE, NULL,
  +                                       f->r->connection->pool,
  +                                       f->r->connection->bucket_alloc);
  +            APR_BRIGADE_INSERT_TAIL(bb, e);
  +            e = apr_bucket_eos_create(f->r->connection->bucket_alloc);
  +            APR_BRIGADE_INSERT_TAIL(bb, e);
  +            return ap_pass_brigade(f->r->output_filters, bb);
           }
       }
   
  
  
  

Mime
View raw message