It seems context_new() and _free() are used for checking validity of
a specified context.  The 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().
---
 src/chcon.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/src/chcon.c b/src/chcon.c
index 32d4b0f..cd5fba3 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)
+      if (security_check_context (specified_context) < 0)
         error (EXIT_FAILURE, 0, _("invalid context: %s"),
                quotearg_colon (specified_context));
-      context_free (context);
     }
 
   if (reference_file && component_specified)
-- 
2.0.0


Reply via email to