summaryrefslogtreecommitdiff
path: root/desktop/slock/slock-use_shadow_group.patch
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/slock/slock-use_shadow_group.patch')
-rw-r--r--desktop/slock/slock-use_shadow_group.patch23
1 files changed, 23 insertions, 0 deletions
diff --git a/desktop/slock/slock-use_shadow_group.patch b/desktop/slock/slock-use_shadow_group.patch
new file mode 100644
index 0000000000..62bc1b8c03
--- /dev/null
+++ b/desktop/slock/slock-use_shadow_group.patch
@@ -0,0 +1,23 @@
+Patch by Robby Workman <rworkman@slackbuilds.org>
+This is trivial, and not really ideal, because it hardcodes our
+shadow group's guid (43), but oh well, it works for us. :-)
+
+diff -Nur a/slock.c b/slock.c
+--- a/slock.c 2008-07-29 13:22:46.000000000 -0500
++++ b/slock.c 2009-01-01 02:51:53.815701828 -0600
+@@ -34,12 +34,12 @@
+
+ #ifndef HAVE_BSD_AUTH
+ static const char *
+-get_password() { /* only run as root */
++get_password() { /* only run as shadow group - no need for suid root */
+ const char *rval;
+ struct passwd *pw;
+
+- if(geteuid() != 0)
+- die("slock: cannot retrieve password entry (make sure to suid slock)\n");
++ if(getegid() != 43)
++ die("slock: cannot retrieve password entry (make sure slock is sgid shadow)\n");
+ pw = getpwuid(getuid());
+ endpwent();
+ rval = pw->pw_passwd;