Loading init/builtins.c +17 −22 Original line number Diff line number Diff line Loading @@ -754,34 +754,29 @@ int do_restorecon(int nargs, char **args) { } int do_setsebool(int nargs, char **args) { SELboolean *b = alloca(nargs * sizeof(SELboolean)); char *v; int i; const char *name = args[1]; const char *value = args[2]; SELboolean b; int ret; if (is_selinux_enabled() <= 0) return 0; for (i = 1; i < nargs; i++) { char *name = args[i]; v = strchr(name, '='); if (!v) { ERROR("setsebool: argument %s had no =\n", name); return -EINVAL; } *v++ = 0; b[i-1].name = name; if (!strcmp(v, "1") || !strcasecmp(v, "true") || !strcasecmp(v, "on")) b[i-1].value = 1; else if (!strcmp(v, "0") || !strcasecmp(v, "false") || !strcasecmp(v, "off")) b[i-1].value = 0; b.name = name; if (!strcmp(value, "1") || !strcasecmp(value, "true") || !strcasecmp(value, "on")) b.value = 1; else if (!strcmp(value, "0") || !strcasecmp(value, "false") || !strcasecmp(value, "off")) b.value = 0; else { ERROR("setsebool: invalid value %s\n", v); ERROR("setsebool: invalid value %s\n", value); return -EINVAL; } } if (security_set_boolean_list(nargs - 1, b, 0) < 0) return -errno; if (security_set_boolean_list(1, &b, 0) < 0) { ret = -errno; ERROR("setsebool: could not set %s to %s\n", name, value); return ret; } return 0; } Loading init/keywords.h +1 −1 Original line number Diff line number Diff line Loading @@ -78,7 +78,7 @@ enum { KEYWORD(setkey, COMMAND, 0, do_setkey) KEYWORD(setprop, COMMAND, 2, do_setprop) KEYWORD(setrlimit, COMMAND, 3, do_setrlimit) KEYWORD(setsebool, COMMAND, 1, do_setsebool) KEYWORD(setsebool, COMMAND, 2, do_setsebool) KEYWORD(socket, OPTION, 0, 0) KEYWORD(start, COMMAND, 1, do_start) KEYWORD(stop, COMMAND, 1, do_stop) Loading init/readme.txt +1 −1 Original line number Diff line number Diff line Loading @@ -213,7 +213,7 @@ setprop <name> <value> setrlimit <resource> <cur> <max> Set the rlimit for a resource. setsebool <name>=<value> setsebool <name> <value> Set SELinux boolean <name> to <value>. <value> may be 1|true|on or 0|false|off Loading toolbox/setsebool.c +15 −24 Original line number Diff line number Diff line Loading @@ -9,35 +9,26 @@ #include <errno.h> static int do_setsebool(int nargs, char **args) { SELboolean *b = alloca(nargs * sizeof(SELboolean)); char *v; int i; const char *name = args[1]; const char *value = args[2]; SELboolean b; if (is_selinux_enabled() <= 0) return 0; for (i = 1; i < nargs; i++) { char *name = args[i]; v = strchr(name, '='); if (!v) { fprintf(stderr, "setsebool: argument %s had no =\n", name); return -1; } *v++ = 0; b[i-1].name = name; if (!strcmp(v, "1") || !strcasecmp(v, "true") || !strcasecmp(v, "on")) b[i-1].value = 1; else if (!strcmp(v, "0") || !strcasecmp(v, "false") || !strcasecmp(v, "off")) b[i-1].value = 0; b.name = name; if (!strcmp(value, "1") || !strcasecmp(value, "true") || !strcasecmp(value, "on")) b.value = 1; else if (!strcmp(value, "0") || !strcasecmp(value, "false") || !strcasecmp(value, "off")) b.value = 0; else { fprintf(stderr, "setsebool: invalid value %s\n", v); fprintf(stderr, "setsebool: invalid value %s\n", value); return -1; } } if (security_set_boolean_list(nargs - 1, b, 0) < 0) if (security_set_boolean_list(1, &b, 0) < 0) { fprintf(stderr, "setsebool: unable to set booleans: %s", strerror(errno)); fprintf(stderr, "setsebool: could not set %s to %s: %s", name, value, strerror(errno)); return -1; } Loading @@ -46,8 +37,8 @@ static int do_setsebool(int nargs, char **args) { int setsebool_main(int argc, char **argv) { if (argc < 2) { fprintf(stderr, "Usage: %s name=value...\n", argv[0]); if (argc != 3) { fprintf(stderr, "Usage: %s name value\n", argv[0]); exit(1); } Loading Loading
init/builtins.c +17 −22 Original line number Diff line number Diff line Loading @@ -754,34 +754,29 @@ int do_restorecon(int nargs, char **args) { } int do_setsebool(int nargs, char **args) { SELboolean *b = alloca(nargs * sizeof(SELboolean)); char *v; int i; const char *name = args[1]; const char *value = args[2]; SELboolean b; int ret; if (is_selinux_enabled() <= 0) return 0; for (i = 1; i < nargs; i++) { char *name = args[i]; v = strchr(name, '='); if (!v) { ERROR("setsebool: argument %s had no =\n", name); return -EINVAL; } *v++ = 0; b[i-1].name = name; if (!strcmp(v, "1") || !strcasecmp(v, "true") || !strcasecmp(v, "on")) b[i-1].value = 1; else if (!strcmp(v, "0") || !strcasecmp(v, "false") || !strcasecmp(v, "off")) b[i-1].value = 0; b.name = name; if (!strcmp(value, "1") || !strcasecmp(value, "true") || !strcasecmp(value, "on")) b.value = 1; else if (!strcmp(value, "0") || !strcasecmp(value, "false") || !strcasecmp(value, "off")) b.value = 0; else { ERROR("setsebool: invalid value %s\n", v); ERROR("setsebool: invalid value %s\n", value); return -EINVAL; } } if (security_set_boolean_list(nargs - 1, b, 0) < 0) return -errno; if (security_set_boolean_list(1, &b, 0) < 0) { ret = -errno; ERROR("setsebool: could not set %s to %s\n", name, value); return ret; } return 0; } Loading
init/keywords.h +1 −1 Original line number Diff line number Diff line Loading @@ -78,7 +78,7 @@ enum { KEYWORD(setkey, COMMAND, 0, do_setkey) KEYWORD(setprop, COMMAND, 2, do_setprop) KEYWORD(setrlimit, COMMAND, 3, do_setrlimit) KEYWORD(setsebool, COMMAND, 1, do_setsebool) KEYWORD(setsebool, COMMAND, 2, do_setsebool) KEYWORD(socket, OPTION, 0, 0) KEYWORD(start, COMMAND, 1, do_start) KEYWORD(stop, COMMAND, 1, do_stop) Loading
init/readme.txt +1 −1 Original line number Diff line number Diff line Loading @@ -213,7 +213,7 @@ setprop <name> <value> setrlimit <resource> <cur> <max> Set the rlimit for a resource. setsebool <name>=<value> setsebool <name> <value> Set SELinux boolean <name> to <value>. <value> may be 1|true|on or 0|false|off Loading
toolbox/setsebool.c +15 −24 Original line number Diff line number Diff line Loading @@ -9,35 +9,26 @@ #include <errno.h> static int do_setsebool(int nargs, char **args) { SELboolean *b = alloca(nargs * sizeof(SELboolean)); char *v; int i; const char *name = args[1]; const char *value = args[2]; SELboolean b; if (is_selinux_enabled() <= 0) return 0; for (i = 1; i < nargs; i++) { char *name = args[i]; v = strchr(name, '='); if (!v) { fprintf(stderr, "setsebool: argument %s had no =\n", name); return -1; } *v++ = 0; b[i-1].name = name; if (!strcmp(v, "1") || !strcasecmp(v, "true") || !strcasecmp(v, "on")) b[i-1].value = 1; else if (!strcmp(v, "0") || !strcasecmp(v, "false") || !strcasecmp(v, "off")) b[i-1].value = 0; b.name = name; if (!strcmp(value, "1") || !strcasecmp(value, "true") || !strcasecmp(value, "on")) b.value = 1; else if (!strcmp(value, "0") || !strcasecmp(value, "false") || !strcasecmp(value, "off")) b.value = 0; else { fprintf(stderr, "setsebool: invalid value %s\n", v); fprintf(stderr, "setsebool: invalid value %s\n", value); return -1; } } if (security_set_boolean_list(nargs - 1, b, 0) < 0) if (security_set_boolean_list(1, &b, 0) < 0) { fprintf(stderr, "setsebool: unable to set booleans: %s", strerror(errno)); fprintf(stderr, "setsebool: could not set %s to %s: %s", name, value, strerror(errno)); return -1; } Loading @@ -46,8 +37,8 @@ static int do_setsebool(int nargs, char **args) { int setsebool_main(int argc, char **argv) { if (argc < 2) { fprintf(stderr, "Usage: %s name=value...\n", argv[0]); if (argc != 3) { fprintf(stderr, "Usage: %s name value\n", argv[0]); exit(1); } Loading