From e8d880e0a22111e8ad3d6b36418014ba4430a944 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jokke=20H=C3=A4m=C3=A4l=C3=A4inen?= Date: Mon, 17 Jun 2019 15:02:11 +0300 Subject: [PATCH] libsepol: Check strdup() failures Check strdup() failures Signed-off-by: Unto Sten --- libsepol/src/kernel_to_conf.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/libsepol/src/kernel_to_conf.c b/libsepol/src/kernel_to_conf.c index 4f84ee8b..5fb4e838 100644 --- a/libsepol/src/kernel_to_conf.c +++ b/libsepol/src/kernel_to_conf.c @@ -450,6 +450,10 @@ static int write_sids_to_conf(FILE *out, const char *const *sid_to_str, } else { snprintf(unknown, 18, "%s%u", "UNKNOWN", i); sid = strdup(unknown); + if (!sid) { + rc = -1; + goto exit; + } } rc = strs_add_at_index(strs, sid, i); if (rc != 0) { @@ -792,6 +796,10 @@ static int write_sensitivity_rules_to_conf(FILE *out, struct policydb *pdb) j = level->level->sens - 1; if (!sens_alias_map[j]) { sens_alias_map[j] = strdup(name); + if (!sens_alias_map[j]) { + rc = -1; + goto exit; + } } else { alias = sens_alias_map[j]; sens_alias_map[j] = create_str("%s %s", 2, alias, name); @@ -919,6 +927,10 @@ static int write_category_rules_to_conf(FILE *out, struct policydb *pdb) j = cat->s.value - 1; if (!cat_alias_map[j]) { cat_alias_map[j] = strdup(name); + if (!cat_alias_map[j]) { + rc = -1; + goto exit; + } } else { alias = cat_alias_map[j]; cat_alias_map[j] = create_str("%s %s", 2, alias, name);