coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] id: fix: check return value of smack_new_label_from_self() <


From: Jarkko Sakkinen
Subject: Re: [PATCH] id: fix: check return value of smack_new_label_from_self() < 0
Date: Thu, 20 Jun 2013 21:44:23 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130510 Thunderbird/17.0.6

Oops. Sorry, for the double-post.

Thanks
/Jarkko

On 20.06.2013 21:21, Jarkko Sakkinen wrote:
Check that smack_new_label_from_self() < 0 and not just non-zero.
There was slight change to libsmack such that positive values are
reserved for returning length of the label for smack_new_label_from_*
functions.
---
  m4/jm-macros.m4 | 11 ++++++-----
  src/id.c        |  3 ++-
  2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/m4/jm-macros.m4 b/m4/jm-macros.m4
index 2e0476d..649a344 100644
--- a/m4/jm-macros.m4
+++ b/m4/jm-macros.m4
@@ -146,11 +146,12 @@ AC_DEFUN([coreutils_MACROS],
    AC_ARG_ENABLE([libsmack],
      AC_HELP_STRING([--disable-libsmack], [disable libsmack support]))
    if test "X$enable_libsmack" != "Xno"; then
-    AC_CHECK_LIB([smack], [smack_smackfs_path],
-      [AC_CHECK_HEADER([sys/smack.h],
-        [LIB_SMACK=-lsmack
-         AC_DEFINE([HAVE_SMACK], [1], [libsmack usability])]
-      )])
+    AC_CHECK_LIB([smack], [smack_new_label_from_self],
+      [AC_CHECK_LIB([smack], [smack_new_label_from_path],
+        [AC_CHECK_HEADER([sys/smack.h],
+          [LIB_SMACK=-lsmack
+           AC_DEFINE([HAVE_SMACK], [1], [libsmack usability])]
+        )])])
      if test "X$LIB_SMACK" = "X"; then
        if test "X$enable_libsmack" = "Xyes"; then
          AC_MSG_ERROR([libsmack library was not found or not usable])
diff --git a/src/id.c b/src/id.c
index 937b723..c91dbcd 100644
--- a/src/id.c
+++ b/src/id.c
@@ -210,7 +210,8 @@ main (int argc, char **argv)
        if (selinux_enabled && getcon (&context) && just_context)
          error (EXIT_FAILURE, 0, _("can't get process context"));
  #ifdef HAVE_SMACK
-      else if (smack_enabled && smack_new_label_from_self ((char **) &context))
+      else if (smack_enabled
+               && smack_new_label_from_self ((char **) &context) < 0)
          error (EXIT_FAILURE, 0, _("can't get process context"));
  #endif
      }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]