Merge branch 'selinux-warning' into 'master'

gio: ‘security_context_t’ is deprecated

See merge request GNOME/glib!1776
This commit is contained in:
Philip Withnall 2020-12-03 13:47:49 +00:00
commit 9a519c8bf0
2 changed files with 25 additions and 29 deletions

View File

@ -2699,8 +2699,8 @@ set_mtime_atime (char *filename,
#ifdef HAVE_SELINUX #ifdef HAVE_SELINUX
static gboolean static gboolean
set_selinux_context (char *filename, set_selinux_context (char *filename,
const GFileAttributeValue *value, const GFileAttributeValue *value,
GError **error) GError **error)
{ {
const char *val; const char *val;
@ -2708,33 +2708,29 @@ set_selinux_context (char *filename,
return FALSE; return FALSE;
if (val == NULL) if (val == NULL)
{ {
g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT, g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT,
_("SELinux context must be non-NULL")); _("SELinux context must be non-NULL"));
return FALSE; return FALSE;
} }
if (is_selinux_enabled ()) { if (!is_selinux_enabled ())
security_context_t val_s; {
g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT,
_("SELinux is not enabled on this system"));
return FALSE;
}
val_s = g_strdup (val); if (setfilecon_raw (filename, val) < 0)
{
int errsv = errno;
if (setfilecon_raw (filename, val_s) < 0) g_set_error (error, G_IO_ERROR,
{ g_io_error_from_errno (errsv),
int errsv = errno; _("Error setting SELinux context: %s"),
g_strerror (errsv));
g_set_error (error, G_IO_ERROR, return FALSE;
g_io_error_from_errno (errsv), }
_("Error setting SELinux context: %s"),
g_strerror (errsv));
return FALSE;
}
g_free (val_s);
} else {
g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT,
_("SELinux is not enabled on this system"));
return FALSE;
}
return TRUE; return TRUE;
} }

View File

@ -2063,7 +2063,7 @@ endif
selinux_dep = [] selinux_dep = []
if host_system == 'linux' if host_system == 'linux'
selinux_dep = dependency('libselinux', required: get_option('selinux')) selinux_dep = dependency('libselinux', version: '>=2.2', required: get_option('selinux'))
glib_conf.set('HAVE_SELINUX', selinux_dep.found()) glib_conf.set('HAVE_SELINUX', selinux_dep.found())
endif endif