From c5895b4aa0991c058169564dc886ab1fc2f3d012 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 7 May 2016 06:49:48 +0200 Subject: [PATCH] (libretro-common/formats/jpeg/rjpeg.c) Allocate out_img->pixels --- libretro-common/formats/jpeg/rjpeg.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/libretro-common/formats/jpeg/rjpeg.c b/libretro-common/formats/jpeg/rjpeg.c index 7ee00c5fcf..6dd54aa5d3 100644 --- a/libretro-common/formats/jpeg/rjpeg.c +++ b/libretro-common/formats/jpeg/rjpeg.c @@ -1,3 +1,4 @@ +#include #include #include #include @@ -851,15 +852,26 @@ bool rjpeg_image_load(uint8_t *buf, void *data, size_t size) if (!rjpg) goto error; - out_img->pixels = (uint32_t*)buf; out_img->width = rjpg->width; out_img->height = rjpg->height; + out_img->pixels = (uint32_t*)malloc(rjpg->width * rjpg->height * rjpg->ncomp); + + if (!out_img->pixels) + { + fprintf(stderr, "Failed to allocate JPEG pixels.\n"); + goto error; + } + + memcpy(out_img->pixels, rjpg->rgb, rjpg->width * rjpg->height * rjpg->ncomp); rjpeg_free(rjpg); return true; error: + if (out_img->pixels) + free(out_img->pixels); + out_img->pixels = NULL; out_img->width = out_img->height = 0;