From bcaa1709e01452f34c8ac7266d3d316aa386a0bf Mon Sep 17 00:00:00 2001 From: Pavel Roskin Date: Sat, 24 Dec 2016 19:39:17 -0800 Subject: [PATCH] Fix all warnings in TurboJPEG code Actually use the error code from tjCompress() by logging the errors. Make sure width is more than zero before filling the pad with the last pixel data. --- libxrdp/xrdp_jpeg_compress.c | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/libxrdp/xrdp_jpeg_compress.c b/libxrdp/xrdp_jpeg_compress.c index 755c20bd..d337af1b 100644 --- a/libxrdp/xrdp_jpeg_compress.c +++ b/libxrdp/xrdp_jpeg_compress.c @@ -28,6 +28,7 @@ #include #include #include +#include "log.h" /*****************************************************************************/ int APP_CC @@ -81,10 +82,13 @@ xrdp_jpeg_compress(void *handle, char *in_data, int width, int height, *dst32 = pixel; dst32++; } - for (i = 0; i < e; i++) + if (width > 0) { - *dst32 = pixel; - dst32++; + for (i = 0; i < e; i++) + { + *dst32 = pixel; + dst32++; + } } } src_buf = (unsigned char *) temp_buf; @@ -93,6 +97,13 @@ xrdp_jpeg_compress(void *handle, char *in_data, int width, int height, error = tjCompress(tj_han, src_buf, width + e, (width + e) * 4, height, TJPF_XBGR, dst_buf, &cdata_bytes, TJSAMP_420, quality, 0); + if (error != 0) + { + log_message(LOG_LEVEL_ERROR, + "xrdp_jpeg_compress: tjCompress error: %s", + tjGetErrorStr()); + } + s->p += cdata_bytes; g_free(temp_buf); return height; @@ -171,6 +182,13 @@ xrdp_codec_jpeg_compress(void *handle, quality, /* jpeg quality */ 0 /* flags */ ); + if (error != 0) + { + log_message(LOG_LEVEL_ERROR, + "xrdp_codec_jpeg_compress: tjCompress error: %s", + tjGetErrorStr()); + } + *io_len = lio_len; return height; }