efl-wl: check returns in x11 selection request handler
authorMike Blumenkrantz <zmike@osg.samsung.com>
Wed, 12 Jul 2017 16:00:52 +0000 (12:00 -0400)
committerMike Blumenkrantz <zmike@osg.samsung.com>
Wed, 12 Jul 2017 15:59:20 +0000 (11:59 -0400)
CID 1377518

src/lib/efl_wl/x11.x

index 892b167..f33bdce 100644 (file)
@@ -342,9 +342,19 @@ x11_selection_request(void *d EINA_UNUSED, int t EINA_UNUSED, Ecore_X_Event_Sele
             {
                int fds[2];
 
+               if (socketpair(AF_UNIX, (SOCK_STREAM | SOCK_CLOEXEC), 0, fds) < 0)
+                 {
+                    EINA_LOG_ERR("socketpair failed!\n");
+                    continue;
+                 }
+               if (fcntl(fds[0], F_SETFL, O_NONBLOCK) < 0)
+                 {
+                    close(fds[0]);
+                    close(fds[1]);
+                    EINA_LOG_ERR("NONBLOCK for socketpair failed!\n");
+                    continue;
+                 }
                p = calloc(1, sizeof(Pipe));
-               socketpair(AF_UNIX, (SOCK_STREAM | SOCK_CLOEXEC), 0, fds);
-               fcntl(fds[0], F_SETFL, O_NONBLOCK);
                p->fdh = ecore_main_fd_handler_add(fds[0], ECORE_FD_READ, x11_pipe_read, p, NULL, NULL);
                p->win = ev->requestor;
                p->source = source;