raster pushed a commit to branch master.

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

commit 1a481cfe4d47974840b05b4a396c71ce1c987570
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date:   Thu Feb 9 18:50:15 2017 +0900

    eina utils and vpath - use euid not uid if setuid for correct user
    
    was using uid not euid for "if setuid use safe way to get location" -
    ie the user that effectively owns the process, not nominally.
    
    @fix
---
 src/lib/efl/interfaces/efl_vpath_core.c | 8 ++++----
 src/lib/eina/eina_util.c                | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/lib/efl/interfaces/efl_vpath_core.c 
b/src/lib/efl/interfaces/efl_vpath_core.c
index cedbfca..b7df27b 100644
--- a/src/lib/efl/interfaces/efl_vpath_core.c
+++ b/src/lib/efl/interfaces/efl_vpath_core.c
@@ -43,8 +43,8 @@ _efl_vpath_core_efl_object_constructor(Eo *obj, 
Efl_Vpath_Core_Data *pd)
    if (!home)
      {
         /* Windows does not have getuid(), but home can't be NULL */
-#ifdef HAVE_GETUID
-        uid_t uid = getuid();
+#ifdef HAVE_GETEUID
+        uid_t uid = geteuid();
         struct stat st;
 
         snprintf(bufhome, sizeof(bufhome), "/tmp/%i", (int)uid);
@@ -109,7 +109,7 @@ _efl_vpath_core_efl_object_constructor(Eo *obj, 
Efl_Vpath_Core_Data *pd)
    if ((getuid() != geteuid()) || (!(s = getenv("XDG_RUNTIME_DIR"))))
 #endif
      {
-#ifdef HAVE_GETUID
+#ifdef HAVE_GETEUID
         struct stat st;
 
         // fallback - make ~/.run
@@ -123,7 +123,7 @@ _efl_vpath_core_efl_object_constructor(Eo *obj, 
Efl_Vpath_Core_Data *pd)
 
              // use /tmp/.run-UID if ~/ dir cant be made
              s = (char *)efl_vpath_core_meta_get(obj, "tmp");
-             uid = getuid();
+             uid = geteuid();
              snprintf(buf, sizeof(buf), "%s/.run-%i", s, (int)uid);
              mkdir(buf,  S_IRUSR | S_IWUSR | S_IXUSR);
              // if ok - use it or fall back to /tmp
diff --git a/src/lib/eina/eina_util.c b/src/lib/eina/eina_util.c
index 93396ae..7205a45 100644
--- a/src/lib/eina/eina_util.c
+++ b/src/lib/eina/eina_util.c
@@ -81,7 +81,7 @@ eina_environment_home_get(void)
         struct passwd pwent, *pwent2 = NULL;
         char pwbuf[8129];
 
-        if (!getpwuid_r(getuid(), &pwent, pwbuf, sizeof(pwbuf), &pwent2))
+        if (!getpwuid_r(geteuid(), &pwent, pwbuf, sizeof(pwbuf), &pwent2))
           {
              if ((pwent2) && (pwent.pw_dir))
                home = strdup(pwent.pw_dir);

-- 


Reply via email to