v2: Add in second free(NULL) for pic_y and third free(NULL) for pic_u. Put back 'allocated' missing consider about the pic_y, pic_u and pic_v will be contains pic_y_old, pic_u_old and pic_v_old will be assign to pic_y, pic_u and pic_v.
Signed-off-by: Lim Siew Hoon <siew.hoon....@intel.com> --- test/loadsurface.h | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/test/loadsurface.h b/test/loadsurface.h index a4cdb9d..00b0653 100755 --- a/test/loadsurface.h +++ b/test/loadsurface.h @@ -55,7 +55,6 @@ static int YUV_blend_with_pic(int width, int height, static int alpha_idx = 0; int alpha; int allocated = 0; - int row, col; if (fixed_alpha == 0) { @@ -72,10 +71,30 @@ static int YUV_blend_with_pic(int width, int height, if (width != 640 || height != 480) { /* need to scale the pic */ pic_y = (unsigned char *)malloc(width * height); + if(pic_y == NULL) { + printf("Failed to allocate memory for pic_y\n"); + return -1; + } + pic_u = (unsigned char *)malloc(width * height/4); - pic_v = (unsigned char *)malloc(width * height/4); + if(pic_u == NULL) { + printf("Failed to allocate memory for pic_u\n"); + free(pic_y); + return -1; + } + pic_v = (unsigned char *)malloc(width * height/4); + if(pic_v == NULL) { + printf("Failed to allocate memory for pic_v\n"); + free(pic_y); + free(pic_u); + return -1; + } allocated = 1; + + memset(pic_y, 0, width * height); + memset(pic_u, 0, width * height /4); + memset(pic_v, 0, width * height /4); scale_2dimage(pic_y_old, 640, 480, pic_y, width, height); @@ -133,7 +152,6 @@ static int YUV_blend_with_pic(int width, int height, } } - if (allocated) { free(pic_y); free(pic_u); -- 2.1.0 _______________________________________________ Libva mailing list Libva@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libva