It's ok for me, thanks~ 在 2013-8-28 上午6:43,"Maxim Dounin" <[email protected]>写道:
> Hello! > > On Wed, Aug 28, 2013 at 12:21:27AM +0800, lanshun zhou wrote: > > > # HG changeset patch > > # User Lanshun Zhou <[email protected]> > > # Date 1377620347 -28800 > > # Node ID 4fae04f332b489c85cdc116e6138a618372d3691 > > # Parent d1403de4163100ec0c6c015e57f22384456870e3 > > Image filter: large image handling. > > > > If Content-Length header is not set, and the image size is larger than > the > > buffer size, client will hang until a timeout occurs. > > > > Now NGX_HTTP_UNSUPPORTED_MEDIA_TYPE is returned immediately. > > > > diff -r d1403de41631 -r 4fae04f332b4 > > src/http/modules/ngx_http_image_filter_module.c > > --- a/src/http/modules/ngx_http_image_filter_module.c Tue Aug 27 > 17:37:15 > > 2013 +0400 > > +++ b/src/http/modules/ngx_http_image_filter_module.c Wed Aug 28 > 00:19:07 > > 2013 +0800 > > @@ -478,7 +478,14 @@ > > "image buf: %uz", size); > > > > rest = ctx->image + ctx->length - p; > > - size = (rest < size) ? rest : size; > > + if (rest < size) { > > + ngx_log_error(NGX_LOG_ERR, r->connection->log, 0, > > + "image filter: too big response: >%z, " > > + "try to increase image_filter_buffer", > > + ctx->length); > > + > > + return NGX_ERROR; > > + } > > Good catch, thnx. > > I don't think the message should be different from one emitted with > Content-Length available though. What about something like this: > > --- a/src/http/modules/ngx_http_image_filter_module.c > +++ b/src/http/modules/ngx_http_image_filter_module.c > @@ -478,7 +478,12 @@ ngx_http_image_read(ngx_http_request_t > "image buf: %uz", size); > > rest = ctx->image + ctx->length - p; > - size = (rest < size) ? rest : size; > + > + if (size > rest) { > + ngx_log_error(NGX_LOG_ERR, r->connection->log, 0, > + "image filter: too big response"); > + return NGX_ERROR; > + } > > p = ngx_cpymem(p, b->pos, size); > b->pos += size; > > > ? > > -- > Maxim Dounin > http://nginx.org/en/donation.html > > _______________________________________________ > nginx-devel mailing list > [email protected] > http://mailman.nginx.org/mailman/listinfo/nginx-devel >
_______________________________________________ nginx-devel mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-devel
