summaryrefslogtreecommitdiff
path: root/selinux
diff options
context:
space:
mode:
Diffstat (limited to 'selinux')
-rw-r--r--selinux/sestatus.c26
1 files changed, 6 insertions, 20 deletions
diff --git a/selinux/sestatus.c b/selinux/sestatus.c
index 3b027ee..1351600 100644
--- a/selinux/sestatus.c
+++ b/selinux/sestatus.c
@@ -47,31 +47,17 @@ 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)
+ parser = config_open("/etc/sestatus.conf");
+ if (!parser)
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;
-
+ while (config_read(parser, &buf, 1, 1, "# \t", PARSE_LAST_IS_GREEDY)) {
if (strcmp(buf, "[process]") == 0) {
section = 1;
} else if (strcmp(buf, "[files]") == 0) {
@@ -86,7 +72,7 @@ static void read_config(char **pc, int npc, char **fc, int nfc)
}
}
}
- fclose(fp);
+ config_close(parser);
}
static void display_verbose(void)