Fix typo we've had for a long time in set_re_uid() in the USE_SETRESUID case.
authorJeremy Allison <jra@samba.org>
Tue, 10 Jul 2012 23:50:51 +0000 (16:50 -0700)
committerJeremy Allison <jra@samba.org>
Tue, 10 Jul 2012 23:50:51 +0000 (16:50 -0700)
We only set the real euid, not the effective one. This is not
a security issue as this is *only* used in the quota code, and
only between code that brackets it with save_re_uid()/restore_re_uid(),
Also this is not used on most platforms (we use USE_SETREUID by
preference) but it's better to have this right. Bug to follow to get this
fixed in 3.6.next and 3.5.next.

source3/lib/util_sec.c

index 7c05f17de571a0a8342fb1725a4410595772a01a..36d2a2b25384f8cd99aa6c96fb785de02741bdd6 100644 (file)
@@ -337,7 +337,7 @@ int set_re_uid(void)
        uid_t uid = geteuid();
 
 #if defined(USE_SETRESUID) || defined(USE_LINUX_THREAD_CREDENTIALS)
-       samba_setresuid(geteuid(), -1, -1);
+       samba_setresuid(uid, uid, -1);
 #endif
 
 #if USE_SETREUID