Fixed prevent defects 66/17566/1
authorJi-hoon Lee <dalton.lee@samsung.com>
Mon, 12 Aug 2013 10:37:34 +0000 (19:37 +0900)
committerJihoon Kim <jihoon48.kim@samsung.com>
Fri, 7 Mar 2014 02:29:38 +0000 (11:29 +0900)
Change-Id: I109f2672e9ad5cb43dca08fbb3df285110a2bac6

ism/src/scim_socket.cpp

index 0f6a443..6d10b44 100644 (file)
@@ -468,7 +468,9 @@ public:
             isf_save_log (buf);
 
             if ((m_err = ::connect (m_id, data, len)) == 0) {
-                fcntl (m_id, F_SETFL, flags);
+                if (fcntl (m_id, F_SETFL, flags) == -1) {
+                    m_err = errno;
+                }
                 m_address = addr;
 
                 snprintf (buf, sizeof (buf), "time:%ld  pid:%d  %s  %s  connect() succeeded\n",
@@ -495,7 +497,7 @@ public:
                 isf_save_log (buf);
 
                 if (select (m_id + 1, &rset, &wset, NULL, nsec ? &tval : NULL) == 0) {
-                    errno = ETIMEDOUT;
+                    m_err = ETIMEDOUT;
 
                     snprintf (buf, sizeof (buf), "time:%ld  pid:%d  %s  %s  timeout in select()\n",
                         time (0), getpid (), __FILE__, __func__);
@@ -506,17 +508,21 @@ public:
                         time (0), getpid (), __FILE__, __func__);
                     isf_save_log (buf);
 
-                    fcntl (m_id, F_SETFL, flags);
+                    if (fcntl (m_id, F_SETFL, flags) == -1) {
+                        m_err = errno;
+                    }
                     m_address = addr;
                     return true;
                 }
             } else {
+                m_err = errno;
                 snprintf (buf, sizeof (buf), "time:%ld  pid:%d  %s  %s  connect() failed with %d\n",
                         time (0), getpid (), __FILE__, __func__, errno);
                 isf_save_log (buf);
             }
-            fcntl (m_id, F_SETFL, flags);
-            m_err = errno;
+            if (fcntl (m_id, F_SETFL, flags) == -1) {
+                m_err = errno;
+            }
         }
         return false;
     }