summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris PeBenito <pebenito@gentoo.org>2006-02-07 01:22:59 +0000
committerChris PeBenito <pebenito@gentoo.org>2006-02-07 01:22:59 +0000
commitdf8cd445645b39ba6f6902d142eb814e7eed2389 (patch)
treef673c4d783cb9ad14727771ea57ac2991a3d9a62 /sys-apps/sysvinit/files
parentVersion Bump. (diff)
downloadgentoo-2-df8cd445645b39ba6f6902d142eb814e7eed2389.tar.gz
gentoo-2-df8cd445645b39ba6f6902d142eb814e7eed2389.tar.bz2
gentoo-2-df8cd445645b39ba6f6902d142eb814e7eed2389.zip
Bump to update SELinux patch.
(Portage version: 2.1_pre4-r1)
Diffstat (limited to 'sys-apps/sysvinit/files')
-rw-r--r--sys-apps/sysvinit/files/2.86-selinux-1.patch91
-rw-r--r--sys-apps/sysvinit/files/digest-sysvinit-2.86-r42
2 files changed, 93 insertions, 0 deletions
diff --git a/sys-apps/sysvinit/files/2.86-selinux-1.patch b/sys-apps/sysvinit/files/2.86-selinux-1.patch
new file mode 100644
index 000000000000..c1b5115bfc6c
--- /dev/null
+++ b/sys-apps/sysvinit/files/2.86-selinux-1.patch
@@ -0,0 +1,91 @@
+--- sysvinit-2.85/src/init.c.selinux 2005-10-14 14:16:24.000000000 -0400
++++ sysvinit-2.85/src/init.c 2005-10-14 14:16:24.000000000 -0400
+@@ -48,6 +48,8 @@
+ #include <stdarg.h>
+ #include <sys/syslog.h>
+ #include <sys/time.h>
++#include <selinux/selinux.h>
++
+
+ #ifdef __i386__
+ # if (__GLIBC__ >= 2)
+@@ -2513,6 +2515,7 @@
+ char *p;
+ int f;
+ int isinit;
++ int enforce = 0;
+
+ /* Get my own name */
+ if ((p = strrchr(argv[0], '/')) != NULL)
+@@ -2576,6 +2579,20 @@
+ maxproclen += strlen(argv[f]) + 1;
+ }
+
++ if (getenv("SELINUX_INIT") == NULL) {
++ putenv("SELINUX_INIT=YES");
++ if (selinux_init_load_policy(&enforce) == 0 ) {
++ execv(myname, argv);
++ } else {
++ if (enforce > 0) {
++ /* SELinux in enforcing mode but load_policy failed */
++ /* At this point, we probably can't open /dev/console, so log() won't work */
++ initlog(L_VB,"Unable to load SELinux Policy. Machine is in enforcing mode. Halting now.");
++ exit(1);
++ }
++ }
++ }
++
+ /* Start booting. */
+ argv0 = argv[0];
+ argv[1] = NULL;
+--- sysvinit-2.85/src/Makefile.selinux 2005-10-14 14:16:24.000000000 -0400
++++ sysvinit-2.85/src/Makefile 2005-10-14 14:16:24.000000000 -0400
+@@ -32,7 +32,7 @@
+ all: $(BIN) $(SBIN) $(USRBIN)
+
+ init: init.o init_utmp.o
+- $(CC) $(LDFLAGS) $(STATIC) -o $@ init.o init_utmp.o
++ $(CC) $(LDFLAGS) $(STATIC) -o $@ init.o init_utmp.o -lsepol -lselinux
+
+ halt: halt.o ifdown.o hddown.o utmp.o reboot.h
+ $(CC) $(LDFLAGS) -o $@ halt.o ifdown.o hddown.o utmp.o
+@@ -50,7 +50,7 @@
+ $(CC) $(LDFLAGS) -o $@ runlevel.o
+
+ sulogin: sulogin.o
+- $(CC) $(LDFLAGS) $(STATIC) -o $@ sulogin.o $(LCRYPT)
++ $(CC) $(LDFLAGS) $(STATIC) -o $@ sulogin.o $(LCRYPT) -lselinux
+
+ wall: dowall.o wall.o
+ $(CC) $(LDFLAGS) -o $@ dowall.o wall.o
+--- sysvinit-2.85/src/sulogin.c.selinux 2005-10-14 14:16:24.000000000 -0400
++++ sysvinit-2.85/src/sulogin.c 2005-10-14 14:18:42.000000000 -0400
+@@ -28,6 +28,8 @@
+ # include <crypt.h>
+ #endif
+
++#include <selinux/selinux.h>
++#include <selinux/get_context_list.h>
+
+ #define CHECK_DES 1
+ #define CHECK_MD5 1
+@@ -332,6 +335,19 @@
+ signal(SIGINT, SIG_DFL);
+ signal(SIGTSTP, SIG_DFL);
+ signal(SIGQUIT, SIG_DFL);
++ if (is_selinux_enabled > 0) {
++ security_context_t scon=NULL;
++ char *seuser=NULL;
++ char *level=NULL;
++ if (getseuserbyname("root", &seuser, &level) == 0)
++ if (get_default_context_with_level(seuser, level, 0, &scon) > 0) {
++ if (setexeccon(scon) != 0)
++ fprintf(stderr, "setexeccon failed\n");
++ freecon(scon);
++ }
++ free(seuser);
++ free(level);
++ }
+ execl(sushell, shell, NULL);
+ perror(sushell);
+
diff --git a/sys-apps/sysvinit/files/digest-sysvinit-2.86-r4 b/sys-apps/sysvinit/files/digest-sysvinit-2.86-r4
new file mode 100644
index 000000000000..36e59eb1e93b
--- /dev/null
+++ b/sys-apps/sysvinit/files/digest-sysvinit-2.86-r4
@@ -0,0 +1,2 @@
+MD5 7d5d61c026122ab791ac04c8a84db967 sysvinit-2.86.tar.gz 99009
+MD5 650af823f937d386e81520b1741d4d45 sysvinit-2.86-kexec.patch 4139