[nginx] Image filter: large image handling.
Maxim Dounin
mdounin at mdounin.ru
Wed Aug 28 08:33:39 UTC 2013
details: http://hg.nginx.org/nginx/rev/317e0893a1e6
branches:
changeset: 5348:317e0893a1e6
user: Lanshun Zhou <zls.sogou at gmail.com>
date: Wed Aug 28 00:19:07 2013 +0800
description:
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
diffstat:
src/http/modules/ngx_http_image_filter_module.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diffs (17 lines):
diff --git a/src/http/modules/ngx_http_image_filter_module.c b/src/http/modules/ngx_http_image_filter_module.c
--- 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;
More information about the nginx-devel
mailing list