raster pushed a commit to branch master.

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

commit e3e68f8ae0f9a8f65561b0fbdbe20576d6d279b4
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date:   Mon Aug 8 16:50:34 2016 +0900

    efl vpath - make sure we check returns of mkdir just in case for errors
    
    so vpath has a fallback if all things bad go wrong to mkdir a homedir
    in /tmp and if that fails use /tmp or use / - if $HOME isnt set ... but
    $HOME alwasy should be, so this is only for "a broken system".
    
    this should fix CID 1354286
---
 src/lib/efl/interfaces/efl_vpath_core.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/lib/efl/interfaces/efl_vpath_core.c 
b/src/lib/efl/interfaces/efl_vpath_core.c
index 6d7d422d..19d846f 100644
--- a/src/lib/efl/interfaces/efl_vpath_core.c
+++ b/src/lib/efl/interfaces/efl_vpath_core.c
@@ -48,7 +48,14 @@ _efl_vpath_core_eo_base_constructor(Eo *obj, 
Efl_Vpath_Core_Data *pd)
         struct stat st;
 
         snprintf(bufhome, sizeof(bufhome), "/tmp/%i", (int)uid);
-        mkdir(bufhome,  S_IRUSR | S_IWUSR | S_IXUSR);
+        if (mkdir(bufhome,  S_IRUSR | S_IWUSR | S_IXUSR) < 0)
+          {
+             if (errno != EEXIST)
+               {
+                  if (stat("/tmp", &st) == 0) home = "/tmp";
+                  else home = "/";
+               }
+          }
         if (stat(bufhome, &st) == 0) home = bufhome;
         else
           {

-- 


Reply via email to