ecore exe - pisix - handle malloc fails
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>
Mon, 24 Jul 2017 07:59:53 +0000 (16:59 +0900)
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>
Mon, 24 Jul 2017 07:59:53 +0000 (16:59 +0900)
handle malloc fails better
@fix

src/lib/ecore/ecore_exe_posix.c

index 9624f80..4f5d125 100644 (file)
@@ -707,15 +707,23 @@ _impl_ecore_exe_event_data_get(Ecore_Exe      *obj,
             if (count != 0) e->size = last;
             if (flags & ECORE_EXE_PIPE_READ)
             {
-               exe->read_data_size = i - last;
                exe->read_data_buf = malloc(exe->read_data_size);
-               memcpy(exe->read_data_buf, c, exe->read_data_size);
+               if (exe->read_data_buf)
+                 {
+                    exe->read_data_size = i - last;
+                    memcpy(exe->read_data_buf, c, exe->read_data_size);
+                 }
+               else ERR("Out of memory in allocating exe pipe data");
             }
             else
             {
-               exe->error_data_size = i - last;
                exe->error_data_buf = malloc(exe->error_data_size);
-               memcpy(exe->error_data_buf, c, exe->error_data_size);
+               if (exe->error_data_buf)
+                 {
+                    exe->error_data_size = i - last;
+                    memcpy(exe->error_data_buf, c, exe->error_data_size);
+                 }
+               else ERR("Out of memory in allocating exe pipe data");
             }
          }
          if (count == 0) /* No lines to send, cancel the event. */