summaryrefslogtreecommitdiff
path: root/debian/patches-applied/setreuid_juggling.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches-applied/setreuid_juggling.patch')
-rw-r--r--debian/patches-applied/setreuid_juggling.patch22
1 files changed, 22 insertions, 0 deletions
diff --git a/debian/patches-applied/setreuid_juggling.patch b/debian/patches-applied/setreuid_juggling.patch
new file mode 100644
index 00000000..d8e36a90
--- /dev/null
+++ b/debian/patches-applied/setreuid_juggling.patch
@@ -0,0 +1,22 @@
+This particular setreuid() is only needed if we don't have any root
+privs at all, so make it conditional like it was pre-1.0.
+
+Authors: Steve Langasek <steve.langasek@canonical.com>
+
+Upstream status: to be submitted
+
+Index: pam.deb/modules/pam_unix/passverify.c
+===================================================================
+--- pam.deb.orig/modules/pam_unix/passverify.c
++++ pam.deb/modules/pam_unix/passverify.c
+@@ -187,8 +187,8 @@
+ if (save_uid == (*pwd)->pw_uid)
+ setreuid(save_uid, save_euid);
+ else {
+- setreuid(-1, 0);
+- setreuid(save_uid, -1);
++ if (setreuid(-1, 0) == -1)
++ setreuid(save_uid, -1);
+ setreuid(-1, save_euid);
+ }
+