From: Namhyung Kim Date: Mon, 30 Jun 2014 15:12:41 +0000 (+0900) Subject: chcon: use security_check_context() for context validation X-Git-Tag: v8.23~27 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e4081e44e0dcc4bfe11d0da0ae47518df087349d;p=thirdparty%2Fcoreutils.git chcon: use security_check_context() for context validation context_new() and _free() are used for checking validity of a specified context. libselinux provides security_check_context for this purpose so use it. Note that context_new() can fail for a valid context - e.g. ENOMEM. * src/chcon.c (main): Use security_check_context(). --- diff --git a/src/chcon.c b/src/chcon.c index 32d4b0f8b7..8c18167ffb 100644 --- a/src/chcon.c +++ b/src/chcon.c @@ -555,13 +555,10 @@ main (int argc, char **argv) } else { - context_t context; specified_context = argv[optind++]; - context = context_new (specified_context); - if (!context) - error (EXIT_FAILURE, 0, _("invalid context: %s"), + if (security_check_context (specified_context) < 0) + error (EXIT_FAILURE, errno, _("invalid context: %s"), quotearg_colon (specified_context)); - context_free (context); } if (reference_file && component_specified)