[PATCH] Image filter: large image handling

lanshun zhou zls.sogou at gmail.com
Tue Aug 27 16:21:27 UTC 2013


# HG changeset patch
# User Lanshun Zhou <zls.sogou at gmail.com>
# 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;
+        }

         p = ngx_cpymem(p, b->pos, size);
         b->pos += size;
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-devel/attachments/20130828/76c92a51/attachment.html>


More information about the nginx-devel mailing list