summaryrefslogtreecommitdiff
path: root/usr.bin/at
diff options
context:
space:
mode:
authorPietro Cerutti <gahr@FreeBSD.org>2013-04-12 14:19:44 +0000
committerPietro Cerutti <gahr@FreeBSD.org>2013-04-12 14:19:44 +0000
commitb9e6237dabc02e4b40624deb8a3244f79a66eb90 (patch)
tree57625913c5e09a8645adf933e31b7de573131cdf /usr.bin/at
parent8f99bb74a374121d5426ee8f8c399a27867e7997 (diff)
downloadsrc-test2-b9e6237dabc02e4b40624deb8a3244f79a66eb90.tar.gz
src-test2-b9e6237dabc02e4b40624deb8a3244f79a66eb90.zip
- Switch order of setting real uid and gid. If we set uid first, then we
don't have enough privileges to set gid. This looks like a long standing bug, just recently revealed by r241852. Approved by: cognet
Notes
Notes: svn path=/head/; revision=249404
Diffstat (limited to 'usr.bin/at')
-rw-r--r--usr.bin/at/privs.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/usr.bin/at/privs.h b/usr.bin/at/privs.h
index 297c2529ac47..2b0d34a19cbf 100644
--- a/usr.bin/at/privs.h
+++ b/usr.bin/at/privs.h
@@ -99,8 +99,8 @@ gid_t real_gid, effective_gid;
PRIV_START \
effective_uid = (a); \
effective_gid = (b); \
- if (setreuid((uid_t)-1, effective_uid) != 0) err(1, "setreuid failed"); \
if (setregid((gid_t)-1, effective_gid) != 0) err(1, "setregid failed"); \
+ if (setreuid((uid_t)-1, effective_uid) != 0) err(1, "setreuid failed"); \
PRIV_END \
}
#endif