Check pointers after malloc operations 39/211039/1 accepted/tizen/unified/20190808.223043 submit/tizen/20190805.083058 submit/tizen/20190806.020207 submit/tizen/20190808.015309
authorLukasz Wlazly <l.wlazly@partner.samsung.com>
Mon, 29 Jul 2019 07:36:31 +0000 (09:36 +0200)
committerLukasz Wlazly <l.wlazly@partner.samsung.com>
Mon, 29 Jul 2019 07:36:31 +0000 (09:36 +0200)
Change-Id: Iea7c54dcb90972a684db884d0c996c302716d96b

src/e_dispatch_rotary_event.c

index 3d6dfc5..4463ac6 100644 (file)
@@ -18,6 +18,8 @@ static Ecore_Event_Mouse_Wheel*
 _create_wheel_event(int z_coordinate)
 {
    Ecore_Event_Mouse_Wheel *ev = malloc(sizeof(Ecore_Event_Mouse_Wheel));
+   if (!ev)
+      return NULL;
 
    ev->window = e_comp->ee_win;
    ev->root_window = e_comp->ee_win;
@@ -56,14 +58,25 @@ static Eina_Bool _on_rotary_timer(void *data)
    Ecore_Event_Mouse_Wheel *ev = NULL;
    if (!cmd->starting_sent) {
       ev = _create_wheel_event(STARTING_Z_COORDINATE);
+      if (!ev) {
+         ERROR("Malloc error");
+         eldbus_connection_send(cmd->conn, cmd->reply, NULL, NULL, -1);
+         return EINA_FALSE;
+      }
       cmd->starting_sent = EINA_TRUE;
       ecore_timer_add(0.0, _on_rotary_timer, cmd);
    } else {
       ev = _create_wheel_event(cmd->info.clockwise ? FINAL_Z_COORDINATE_CLOCKWISE : FINAL_Z_COORDINATE_COUNTER_CLOCKWISE);
+      if (!ev) {
+         ERROR("Malloc error");
+         eldbus_connection_send(cmd->conn, cmd->reply, NULL, NULL, -1);
+         return EINA_FALSE;
+      }
       --cmd->info.multiplicity;
       cmd->starting_sent = EINA_FALSE;
       ecore_timer_add(cmd->info.interval, _on_rotary_timer, cmd);
    }
+
    ecore_event_add(ECORE_EVENT_MOUSE_WHEEL, ev, NULL, NULL);
    return EINA_FALSE;
 }
@@ -74,6 +87,9 @@ Eldbus_Message *_e_dispatch_rotary_event(RotaryInfo info, Eldbus_Connection *con
      return eldbus_message_error_new(msg, "org.freedesktop.DBus.Error.Failed", "Multiplicity is expected to be higher than 0.");
 
    RotaryCommand* cmd = malloc(sizeof(RotaryCommand));
+   if (!cmd) {
+      return eldbus_message_error_new(msg, "org.freedesktop.DBus.Error.Failed", "Malloc error.");
+   }
    cmd->info = info;
    cmd->starting_sent = EINA_FALSE;
    cmd->conn = conn;