From: Bastian Dehn Date: Sat, 11 Oct 2025 10:22:53 +0000 (+0200) Subject: fix allocation issues for converter X-Git-Tag: v1.1.10^2~10 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=9ce787686a689b31cce48ff0375b9e59a45f5007;p=sane-kds-s2000w-net.git fix allocation issues for converter --- diff --git a/src/kds_s2000w_image_converter_netpbm.c b/src/kds_s2000w_image_converter_netpbm.c index f2f1c21..7ed1288 100644 --- a/src/kds_s2000w_image_converter_netpbm.c +++ b/src/kds_s2000w_image_converter_netpbm.c @@ -101,22 +101,25 @@ uint32_t _kds_s2000w_image_converter_get_number_from_substring(char* data, uint3 { kds_s2000w_debug_printf(ALL, "kds_s2000w_image_converter_get_number_from_substring"); - uint32_t number = 0; - char* number_buffer = malloc(sizeof(char) * MAXBUFFER); + if (number_buffer == NULL) + return 0; + memset(number_buffer, 0, MAXBUFFER); strncpy(number_buffer, &data[start + 1], end - start - 1); - number = atoi(number_buffer); + uint32_t number = atoi(number_buffer); free(number_buffer); number_buffer = NULL; - return number; } void _kds_s2000w_image_converter_tiff_metadata(blobdata* image, image_metadata* mdata) { tiff_reader* tiff_handler = malloc(sizeof(tiff_reader)); + if (tiff_handler == NULL) + return; + tiff_handler->image = image; tiff_handler->curr_offset = 0; TIFF* tiff = TIFFClientOpen("input.tiff", "r", (thandle_t) tiff_handler, @@ -344,6 +347,9 @@ void _kds_s2000w_image_converter_tiff_to_pnm(blobdata* in, blobdata* out) kds_s2000w_debug_printf(ALL, "kds_s2000w_image_converter_tiff_to_pnm"); tiff_reader* tiff_handler = malloc(sizeof(tiff_reader)); + if (tiff_handler == NULL) + return; + tiff_handler->image = in; tiff_handler->curr_offset = 0; TIFF* tiff = TIFFClientOpen("input.tiff", "r", (thandle_t*) tiff_handler, @@ -353,6 +359,11 @@ void _kds_s2000w_image_converter_tiff_to_pnm(blobdata* in, blobdata* out) _kds_s2000w_image_converter_tiff_close, _kds_s2000w_image_converter_tiff_size, NULL, NULL); + if (tiff == NULL) { + free(tiff_handler); + tiff_handler = NULL; + return; + } uint32_t width = 0; uint32_t height = 0; @@ -361,6 +372,14 @@ void _kds_s2000w_image_converter_tiff_to_pnm(blobdata* in, blobdata* out) size_t decompress_size = width * height; uint8_t* decompress_data = malloc(sizeof(uint8_t) * decompress_size); + if (decompress_data == NULL) { + TIFFClose(tiff); + tiff = NULL; + free(tiff_handler); + tiff_handler = NULL; + return; + } + memset(decompress_data, 0, decompress_size); uint8_t* row = NULL;