mirror of
https://github.com/coreutils/coreutils.git
synced 2024-11-23 18:05:42 +08:00
id: adjust/restrict smack support to newer versions of libsmack
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: Set HAVE_SMACK when both smack_new_label_from_self() and recently added smack_new_label_from_path() are present. The latter's presence indicates the newer API of the former. * src/id.c (main): Check that smack_new_label_from_self() < 0, and not just non-zero.
This commit is contained in:
parent
2bb800dd41
commit
2bc0281352
@ -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])
|
||||
|
3
src/id.c
3
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
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user