Skip to content

Commit

Permalink
selinux.c: do not use deprecated typedef and skip context translation
Browse files Browse the repository at this point in the history
These retrieved contexts are just passed to libselinux functions and not
printed or otherwise made available to the outside, so a context
translation to human readable MCS/MLS labels is not needed.
(see man:setrans.conf(5))

The typedef security_context_t is deprecated, see
SELinuxProject/selinux@9eb9c93

Signed-off-by: Christian Göttsche <[email protected]>
Acked-by: James Carter <[email protected]>
  • Loading branch information
cgzones committed May 6, 2021
1 parent c0aa8a8 commit 95fd179
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions lib/selinux.c
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ static bool selinux_enabled;
*/
int set_selinux_file_context (const char *dst_name)
{
/*@null@*/security_context_t scontext = NULL;
/*@null@*/char *scontext = NULL;

if (!selinux_checked) {
selinux_enabled = is_selinux_enabled () > 0;
Expand Down Expand Up @@ -93,7 +93,7 @@ int reset_selinux_file_context (void)
selinux_checked = true;
}
if (selinux_enabled) {
if (setfscreatecon (NULL) != 0) {
if (setfscreatecon_raw (NULL) != 0) {
return 1;
}
}
Expand Down Expand Up @@ -175,7 +175,7 @@ static int selinux_log_cb (int type, const char *fmt, ...) {
*/
int check_selinux_permit (const char *perm_name)
{
char *user_context_str;
char *user_context_raw;
int r;

if (0 == is_selinux_enabled ()) {
Expand All @@ -184,7 +184,7 @@ int check_selinux_permit (const char *perm_name)

selinux_set_callback (SELINUX_CB_LOG, (union selinux_callback) selinux_log_cb);

if (getprevcon (&user_context_str) != 0) {
if (getprevcon_raw (&user_context_raw) != 0) {
fprintf (stderr,
_("%s: can not get previous SELinux process context: %s\n"),
Prog, strerror (errno));
Expand All @@ -194,8 +194,8 @@ int check_selinux_permit (const char *perm_name)
return (security_getenforce () != 0);
}

r = selinux_check_access (user_context_str, user_context_str, "passwd", perm_name, NULL);
freecon (user_context_str);
r = selinux_check_access (user_context_raw, user_context_raw, "passwd", perm_name, NULL);
freecon (user_context_raw);
return r;
}

Expand Down

0 comments on commit 95fd179

Please sign in to comment.