← Commit list

b3ede5abe

Rob Landley
Rob Landley
2006-03-27
SOURCE BUG Duration: 8s

Subject

More from Jan Kiszka: this is a port of the latest sysv-init SELinux patch. It makes busybox invoke the libselinux library function to load the binary policy right at system start-up. It was successfully tested on a mini-SELinux system. Note: requires recent libselinux. I'm using 1.28.

SOURCE BUG

This commit was genuinely broken at the time (not related to our build system): scripts/config/mkconfigs.c (2005-08-01 - 2006-10-05 arasi) uretilen bbconfigopts.h icine .config satirlarini kacissiz, ham newline'larla gömüyordu - gecerli C degildi, busybox'un kendi bb_mkdep araci bile parse edemiyordu (7d219aab7 ile duzeltildi, mkconfigs shell scripte cevrildi)

→ Bu hatanin tam hikayesini ve duzeltme diffini gor

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

init/init.c+21 -0
@@ -39,6 +39,11 @@
#endif
+#ifdef CONFIG_SELINUX
+# include <selinux/selinux.h>
+#endif /* CONFIG_SELINUX */
+
+
#define INIT_BUFFS_SIZE 256
/* From <linux/vt.h> */
@@ -1097,6 +1102,22 @@ int init_main(int argc, char **argv)
parse_inittab();
}
+#ifdef CONFIG_SELINUX
+ if (getenv("SELINUX_INIT") == NULL) {
+ int enforce = 0;
+
+ putenv("SELINUX_INIT=YES");
+ if (selinux_init_load_policy(&enforce) == 0) {
+ execv(argv[0], 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 */
+ message(CONSOLE,"Unable to load SELinux Policy. Machine is in enforcing mode. Halting now.");
+ exit(1);
+ }
+ }
+#endif /* CONFIG_SELINUX */
+
/* Make the command line just say "init" -- thats all, nothing else */
fixup_argv(argc, argv, "init");