kbd_mode: fix non-ASCII letters in comments
[oweals/busybox.git] / selinux / sestatus.c
index cc17b175b06f30f4f5e21fe696705cd01971a5cb..eca557e4cae4af539191b2913352ceb3b6ef207d 100644 (file)
@@ -47,46 +47,29 @@ static void display_boolean(void)
 
 static void read_config(char **pc, int npc, char **fc, int nfc)
 {
-       char buf[256];
-       FILE *fp;
+       char *buf;
+       parser_t *parser;
        int pc_ofs = 0, fc_ofs = 0, section = -1;
 
        pc[0] = fc[0] = NULL;
 
-       fp = fopen("/etc/sestatus.conf", "rb");
-       if (fp == NULL)
-               return;
-
-       while (fgets(buf, sizeof(buf), fp) != NULL) {
-               int i, c;
-
-               /* kills comments */
-               for (i = 0; (c = buf[i]) != '\0'; i++) {
-                       if (c == '#') {
-                               buf[i] = '\0';
-                               break;
-                       }
-               }
-               trim(buf);
-
-               if (buf[0] == '\0')
-                       continue;
-
+       parser = config_open("/etc/sestatus.conf");
+       while (config_read(parser, &buf, 1, 1, "# \t", PARSE_NORMAL)) {
                if (strcmp(buf, "[process]") == 0) {
                        section = 1;
                } else if (strcmp(buf, "[files]") == 0) {
                        section = 2;
                } else {
                        if (section == 1 && pc_ofs < npc -1) {
-                               pc[pc_ofs++] = strdup(buf);
+                               pc[pc_ofs++] = xstrdup(buf);
                                pc[pc_ofs] = NULL;
                        } else if (section == 2 && fc_ofs < nfc - 1) {
-                               fc[fc_ofs++] = strdup(buf);
+                               fc[fc_ofs++] = xstrdup(buf);
                                fc[fc_ofs] = NULL;
                        }
                }
        }
-       fclose(fp);
+       config_close(parser);
 }
 
 static void display_verbose(void)
@@ -159,7 +142,7 @@ static void display_verbose(void)
 }
 
 int sestatus_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-int sestatus_main(int argc, char **argv)
+int sestatus_main(int argc UNUSED_PARAM, char **argv)
 {
        unsigned opts;
        const char *pol_path;