vdr/vdr/debian/patches 07_not_as_root.dpatch
Thomas Schmidt
pkg-vdr-dvb-changes@lists.alioth.debian.org
Sun, 16 Jan 2005 20:41:07 +0000
Update of /cvsroot/pkg-vdr-dvb/vdr/vdr/debian/patches
In directory haydn:/tmp/cvs-serv17638/vdr/vdr/debian/patches
Modified Files:
07_not_as_root.dpatch
Log Message:
* also refuse to run when gid is root
Index: 07_not_as_root.dpatch
===================================================================
RCS file: /cvsroot/pkg-vdr-dvb/vdr/vdr/debian/patches/07_not_as_root.dpatch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- 07_not_as_root.dpatch 16 Jan 2005 19:39:47 -0000 1.1
+++ 07_not_as_root.dpatch 16 Jan 2005 20:41:05 -0000 1.2
@@ -6,9 +6,9 @@
## DP: 05_set_system_time_as_user.dpatch)
@DPATCH@
-diff -urNad vdr-1.2.6/vdr.c /tmp/dpep.zQi8Wv/vdr-1.2.6/vdr.c
---- vdr-1.2.6/vdr.c 2005-01-16 20:24:35.000000000 +0100
-+++ /tmp/dpep.zQi8Wv/vdr-1.2.6/vdr.c 2005-01-16 20:32:07.000000000 +0100
+diff -urNad vdr-1.2.6/vdr.c /tmp/dpep.KXhAyV/vdr-1.2.6/vdr.c
+--- vdr-1.2.6/vdr.c 2005-01-16 21:24:13.000000000 +0100
++++ /tmp/dpep.KXhAyV/vdr-1.2.6/vdr.c 2005-01-16 21:27:33.000000000 +0100
@@ -35,6 +35,7 @@
#include <grp.h>
#include <sys/capability.h>
@@ -17,17 +17,25 @@
#include "audio.h"
#include "channels.h"
#include "config.h"
-@@ -325,12 +326,22 @@
+@@ -325,12 +326,30 @@
}
}
+ // Check if the program should run as root
+ bool IsRoot=0;
+
-+ if (username == NULL)
++ if (username == NULL && groupname == NULL)
+ IsRoot = !getuid () || !getgid () || !geteuid () || !getegid ();
-+ else if (strcmp(username,"root") == 0)
-+ IsRoot = 1;
++ else {
++ if (username != NULL) {
++ if (strcmp(username,"root") == 0)
++ IsRoot = 1;
++ }
++ if (groupname != NULL) {
++ if (strcmp(groupname,"root") == 0)
++ IsRoot = 1;
++ }
++ }
+
// Help and version info:
@@ -43,7 +51,7 @@
if (DisplayHelp) {
printf("Usage: vdr [OPTIONS]\n\n" // for easier orientation, this is column 80|
" -a CMD, --audio=CMD send Dolby Digital audio to stdin of command CMD\n"
-@@ -374,7 +385,7 @@
+@@ -374,7 +393,7 @@
}
if (DisplayVersion)
printf("vdr (%s) - The Video Disk Recorder\n", VDRVERSION);
@@ -52,7 +60,7 @@
if (DisplayHelp)
printf("Plugins: vdr -P\"name [OPTIONS]\"\n\n");
for (int i = 0; ; i++) {
-@@ -394,6 +405,11 @@
+@@ -394,6 +413,11 @@
return 0;
}