uwrap: Add libc_setreuid().
authorAndreas Schneider <asn@samba.org>
Tue, 17 Dec 2013 12:08:16 +0000 (13:08 +0100)
committerAndreas Schneider <asn@samba.org>
Tue, 17 Dec 2013 12:20:25 +0000 (13:20 +0100)
src/uid_wrapper.c

index 853cf6e9bb566fc83adc5900268dc873bb2913dc..2c5520160343a3b91edfccf72676f6857f4c88d4 100644 (file)
@@ -271,6 +271,15 @@ static int libc_seteuid(uid_t euid)
 }
 #endif
 
+#ifdef HAVE_SETREUID
+static int libc_setreuid(uid_t ruid, uid_t euid)
+{
+       uwrap_load_lib_function(UWRAP_LIBC, setreuid);
+
+       return uwrap.libc.fns._libc_setreuid(ruid, euid);
+}
+#endif
+
 static void *uwrap_libc_fn(struct uwrap *u, const char *fn_name)
 {
        void *func;
@@ -316,9 +325,6 @@ static void uwrap_libc_init(struct uwrap *u)
        }
 #endif
 
-#ifdef HAVE_SETREUID
-       *(void **) (&u->libc.fns._libc_setreuid) = uwrap_libc_fn(u, "setreuid");
-#endif
 #ifdef HAVE_SETRESUID
        *(void **) (&u->libc.fns._libc_setresuid) = uwrap_libc_fn(u, "setresuid");
 #endif
@@ -588,7 +594,7 @@ int setreuid(uid_t ruid, uid_t euid)
        }
 
        if (!uwrap_enabled()) {
-               return uwrap.libc.fns._libc_setreuid(ruid, euid);
+               return libc_setreuid(ruid, euid);
        }
 
        return uwrap_setresuid(ruid, euid, -1);