summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLim Siew Hoon <siew.hoon.lim@intel.com>2016-07-01 10:30:21 +0800
committerXiang, Haihao <haihao.xiang@intel.com>2016-07-22 16:13:20 +0800
commit1c2997307e007c9a999b33da9c237dda370d1990 (patch)
tree40a620fb5ff6e7d3abbaa8e9630bb9faad495fa6
parent8c0973050d825fb6a0734dd62fdf8b209aee8ad0 (diff)
check memory alloc to avoid NULL and initialize value in YUV_blend_with_pic (v2)
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.lim@intel.com>
-rwxr-xr-xtest/loadsurface.h23
1 files changed, 21 insertions, 2 deletions
diff --git a/test/loadsurface.h b/test/loadsurface.h
index a4cdb9d..4d7be98 100755
--- a/test/loadsurface.h
+++ b/test/loadsurface.h
@@ -72,10 +72,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 +153,6 @@ static int YUV_blend_with_pic(int width, int height,
}
}
-
if (allocated) {
free(pic_y);
free(pic_u);