[PATCH 8/8] busybox -- libselinux utilities applets

Denis Vlasenko vda.linux at googlemail.com
Fri Jan 26 16:15:47 PST 2007


On Thursday 25 January 2007 15:45, KaiGai Kohei wrote:
> [8/8] busybox-libselinux-08-setenforce.patch
>   setenforce - modify the mode SELinux is running in Enforcing
>   mode or Permissive.
> 
> Signed-off-by: Hiroshi Shinji <shiroshi at my.email.ne.jp>
> Signed-off-by: KaiGai Kohei <kaigai at kaigai.gr.jp>
> 
> --
> KaiGai Kohei <kaigai at kaigai.gr.jp>

--- selinux/setenforce.c        (revision 0)
+++ selinux/setenforce.c        (revision 0)
@@ -0,0 +1,44 @@
+/*
+ * setenforce
+ *
+ * Based on libselinux 1.33.1
+ * Port to BusyBox  Hiroshi Shinji <shiroshi at my.email.ne.jp>
+ *
+ */
+
+#include "busybox.h"
+#include <unistd.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <ctype.h>
+#include <string.h>
+#include <strings.h>
+#include <selinux/selinux.h>
+
+int setenforce_main(int argc, char **argv)
+{
+       int rc = 0;
+       if (argc != 2) {
+               bb_show_usage();
+       }
+
+       if (is_selinux_enabled() <= 0) {
+               bb_error_msg("SELinux is disabled");
+               return 1;
+       }
+       if (strlen(argv[1]) == 1 && (argv[1][0] == '0' || argv[1][0] == '1')) {

You mean, "if ((unsigned char)(argv[1][0]-'0') <= 1 && !argv[1][1])..." ?

+               rc = security_setenforce(atoi(argv[1]));
+       } else {
+               if (strcasecmp(argv[1], "enforcing") == 0) {
+                       rc = security_setenforce(1);
+               } else if (strcasecmp(argv[1], "permissive") == 0) {
+                       rc = security_setenforce(0);
+               } else
+                       bb_show_usage();
+       }
+       if (rc < 0) {
+               bb_error_msg("setenforce() failed");

If errno is set to meaningful value, bb_perror_msg() gives more
informative messages (appends ": <strerror>".

+               return 2;
+       }
+       return 0;
+}


More information about the busybox mailing list