diff options
Diffstat (limited to 'src/Routes/ImageProxy.c')
| -rw-r--r-- | src/Routes/ImageProxy.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/Routes/ImageProxy.c b/src/Routes/ImageProxy.c index eb9c7d5..2d6d3a9 100644 --- a/src/Routes/ImageProxy.c +++ b/src/Routes/ImageProxy.c @@ -301,6 +301,13 @@ int image_proxy_handler(UrlParams *params) { int cache_ttl = get_cache_ttl_image(); if (cache_get(cache_key, cache_ttl, &cached_data, &cached_size) == 0) { + if (!cached_data || cached_size == 0) { + free(cached_data); + free(cache_key); + send_response("Empty cached image response"); + return 0; + } + char content_type[64] = {0}; const char *ext = strrchr(url, '.'); @@ -406,6 +413,13 @@ int image_proxy_handler(UrlParams *params) { return 0; } + if (buf.size == 0) { + free(buf.data); + free(cache_key); + send_response("Empty image response"); + return 0; + } + if (strlen(content_type) == 0 || strncmp(content_type, "image/", 6) != 0) { free(buf.data); |
