From af53415f9e6933d540d80209eff1e2d10c71d85c Mon Sep 17 00:00:00 2001 From: horchi Date: Sun, 1 Nov 2020 09:53:09 +0100 Subject: 2020-11-01: version 1.1.165 (horchi)\n - change: Check HTTP Codes 600 nad 500\n - change: Add result check of fromJpeg/scaleJpegBuffer\n\n --- HISTORY.h | 11 ++++++++--- lib/curl.c | 5 +++-- lib/imgtools.c | 5 +++-- webdo.c | 18 ++++++++++++------ 4 files changed, 26 insertions(+), 13 deletions(-) diff --git a/HISTORY.h b/HISTORY.h index ed6fd26..904f6b7 100644 --- a/HISTORY.h +++ b/HISTORY.h @@ -4,8 +4,8 @@ * ----------------------------------- */ -#define _VERSION "1.1.164" -#define VERSION_DATE "31.10.2020" +#define _VERSION "1.1.165" +#define VERSION_DATE "01.11.2020" #define DB_API 7 #ifdef GIT_REV @@ -18,7 +18,12 @@ * ------------------------------------ * * -2020-31-31: version 1.1.164 (horchi) + +2020-11-01: version 1.1.165 (horchi) + - change: Check HTTP Codes 600 nad 500 + - change: Add result check of fromJpeg/scaleJpegBuffer + +2020-10-31: version 1.1.164 (horchi) - bugfix: fixed error handling in curl downloadFile (thx to Alexander Grothe) - bugfix: improved error handling of jpeg processing (patch by NemoN) diff --git a/lib/curl.c b/lib/curl.c index 859c873..32ac2e7 100644 --- a/lib/curl.c +++ b/lib/curl.c @@ -466,15 +466,16 @@ int cCurl::downloadFile(const char* url, int& size, MemoryStruct* data, int time curl_easy_getinfo(handle, CURLINFO_HTTP_CODE, &code); tell(3, "got http code (%ld)", code); - data->statusCode = code; - if (code == 404) + if (code == 400 || code == 404 || code == 500) { data->clear(); + data->statusCode = code; exit(); return fail; } + data->statusCode = code; size = data->size; return success; diff --git a/lib/imgtools.c b/lib/imgtools.c index c34c022..9f4d87e 100644 --- a/lib/imgtools.c +++ b/lib/imgtools.c @@ -47,7 +47,7 @@ int fromJpeg(Imlib_Image& image, unsigned char* buffer, int size) if (setjmp(jerr.setjmp_buffer)) { jpeg_destroy_decompress(&cinfo); - return 0; + return fail; } jpeg_create_decompress(&cinfo); @@ -213,7 +213,8 @@ int scaleJpegBuffer(MemoryStruct* data, int width, int height) { Imlib_Image image; - fromJpeg(image, (unsigned char*)data->memory, data->size); + if (fromJpeg(image, (unsigned char*)data->memory, data->size) != success) + return fail; scaleImageToJpegBuffer(image, data, width, height); diff --git a/webdo.c b/webdo.c index a7d0f40..189b22a 100644 --- a/webdo.c +++ b/webdo.c @@ -677,8 +677,10 @@ int cEpgHttpd::doEpgImage(MHD_Connection* tcp, json_t* obj, MemoryStruct* data) data->memory = (char*)malloc(data->size); memcpy(data->memory, imageImage->getStrValue(), data->size); - scaleJpegBuffer(data, maxW, maxH); - sprintf(data->contentType, "image/jpg"); + if (scaleJpegBuffer(data, maxW, maxH) != success) + data->clear(); + else + sprintf(data->contentType, "image/jpg"); } } @@ -743,8 +745,10 @@ int cEpgHttpd::doMovieMedia(MHD_Connection* tcp, json_t* obj, MemoryStruct* data data->memory = (char*)malloc(data->size); memcpy(data->memory, moviemediaMediaContent->getStrValue(), data->size); - scaleJpegBuffer(data, maxW, maxH); - sprintf(data->contentType, "image/jpg"); + if (scaleJpegBuffer(data, maxW, maxH) != success) + data->clear(); + else + sprintf(data->contentType, "image/jpg"); } } @@ -806,8 +810,10 @@ int cEpgHttpd::doSeriesMedia(MHD_Connection* tcp, json_t* obj, MemoryStruct* dat data->memory = (char*)malloc(data->size); memcpy(data->memory, seriesmediaMediaContent->getStrValue(), data->size); - scaleJpegBuffer(data, maxW, maxH); - sprintf(data->contentType, "image/jpg"); + if (scaleJpegBuffer(data, maxW, maxH) != success) + data->clear(); + else + sprintf(data->contentType, "image/jpg"); } } -- cgit v1.2.3