raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=8cdef1831c2cbdad9fc3bb8b03601d76ebe15a94

commit 8cdef1831c2cbdad9fc3bb8b03601d76ebe15a94
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
Date:   Fri Dec 13 16:27:04 2013 +0900

    ecore-con - fix possible unterminated buffers
    
    this should fix CID 1039725 and CID 1039724
---
 src/lib/ecore_con/ecore_con_local.c | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/src/lib/ecore_con/ecore_con_local.c 
b/src/lib/ecore_con/ecore_con_local.c
index df86334..54dde17 100644
--- a/src/lib/ecore_con/ecore_con_local.c
+++ b/src/lib/ecore_con/ecore_con_local.c
@@ -91,7 +91,10 @@ ecore_con_local_connect(Ecore_Con_Server *svr,
         if (svr->port < 0)
           {
              if (svr->name[0] == '/')
-               strncpy(buf, svr->name, sizeof(buf));
+               {
+                  strncpy(buf, svr->name, sizeof(buf) - 1);
+                  buf[sizeof(buf) - 1] = 0;
+               }
              else
                snprintf(buf, sizeof(buf), "/tmp/.ecore_service|%s", svr->name);
           }
@@ -108,8 +111,10 @@ ecore_con_local_connect(Ecore_Con_Server *svr,
           }
      }
    else if ((svr->type & ECORE_CON_TYPE) == ECORE_CON_LOCAL_ABSTRACT)
-     strncpy(buf, svr->name,
-             sizeof(buf));
+     {
+        strncpy(buf, svr->name, sizeof(buf) - 1);
+        buf[sizeof(buf) - 1] = 0;
+     }
 
    svr->fd = socket(AF_UNIX, SOCK_STREAM, 0);
    if (svr->fd < 0)
@@ -251,8 +256,10 @@ ecore_con_local_listen(
                    svr->port);
      }
    else if ((svr->type & ECORE_CON_TYPE) == ECORE_CON_LOCAL_ABSTRACT)
-     strncpy(buf, svr->name,
-             sizeof(buf));
+     {
+        strncpy(buf, svr->name, sizeof(buf) - 1);
+        buf[sizeof(buf) - 1] = 0;
+     }
 
    pmode = umask(mask);
 start:

-- 


Reply via email to