OSDN Git Service

check memory alloc to avoid NULL and initialize value in YUV_blend_with_pic (v2)
authorLim Siew Hoon <siew.hoon.lim@intel.com>
Fri, 1 Jul 2016 02:30:21 +0000 (10:30 +0800)
committerXiang, Haihao <haihao.xiang@intel.com>
Fri, 22 Jul 2016 08:13:20 +0000 (16:13 +0800)
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>
test/loadsurface.h

index a4cdb9d..4d7be98 100755 (executable)
@@ -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);