diff options
-rw-r--r-- | src/rc/rc-selinux.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/rc/rc-selinux.c b/src/rc/rc-selinux.c index a792fe28..2eb631a6 100644 --- a/src/rc/rc-selinux.c +++ b/src/rc/rc-selinux.c @@ -334,7 +334,19 @@ void selinux_setup(char **argv) /* extract the type from the context */ curr_con = context_new(curr_context); - curr_t = xstrdup(context_type_get(curr_con)); + if (!curr_con) { + free(curr_context); + goto out; + } + + curr_t = context_type_get(curr_con); + if (!curr_t) { + context_free(curr_con); + free(curr_context); + goto out; + } + + curr_t = xstrdup(curr_t); /* dont need them anymore so free() now */ context_free(curr_con); free(curr_context); |