ecore-input: Check return fo ecore_main_fd_handler_fd_get 56/117656/1
authorChris Michael <cpmichael@osg.samsung.com>
Thu, 30 Jun 2016 14:47:56 +0000 (10:47 -0400)
committerShinwoo Kim <cinoo.kim@samsung.com>
Tue, 7 Mar 2017 04:55:41 +0000 (13:55 +0900)
This patch fixes 2 coverity Error handling issues.
ecore_main_fd_handler_fd_get can return a negative fd on error so we
should be checking that return before trying to make use of the fd.

Fixes Coverity CID1356632 and CID1356624

@fix

Change-Id: I2930c305ad6f9a3606807498aff490b218c0efe6
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
src/lib/ecore_input/ecore_input_joystick.c

index 1f65ce4..1b17abf 100644 (file)
@@ -189,6 +189,7 @@ _fd_handler_cb(void* userData, Ecore_Fd_Handler* fdHandler)
    ssize_t len;
 
    fd = ecore_main_fd_handler_fd_get(fdHandler);
+   if (fd < 0) return ECORE_CALLBACK_RENEW;
 
    len = read(fd, &event, sizeof(event));
    if (len == -1) return ECORE_CALLBACK_RENEW;
@@ -300,7 +301,7 @@ register_failed:
 static void
 _joystick_unregister(const char *syspath)
 {
-   int   fd;
+   int fd;
    Eina_List *l, *l2;
    Joystick_Info *ji;
 
@@ -309,6 +310,8 @@ _joystick_unregister(const char *syspath)
         if (syspath == ji->system_path)
           {
              fd = ecore_main_fd_handler_fd_get(ji->fd_handler);
+             if (fd < 0) continue;
+
              close(fd);
              ecore_main_fd_handler_del(ji->fd_handler);
              joystick_list = eina_list_remove(joystick_list, ji);