X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fbasic%2Fselinux-util.c;h=239900b79560671e4c780ab5abefc8f8f6ae3f3b;hp=69885d9fc9b8456f19518171c7e93cbc18eaa6ec;hb=64b485bf89b90042c9a624633b038ef417b0325e;hpb=1cfc78c91965df340cdde100ad6cb3ed50b28927 diff --git a/src/basic/selinux-util.c b/src/basic/selinux-util.c index 69885d9fc..239900b79 100644 --- a/src/basic/selinux-util.c +++ b/src/basic/selinux-util.c @@ -57,11 +57,14 @@ bool mac_selinux_use(void) { #endif } +/// UNNEEDED by elogind +#if 0 void mac_selinux_retest(void) { #ifdef HAVE_SELINUX cached_use = -1; #endif } +#endif // 0 int mac_selinux_init(const char *prefix) { int r = 0; @@ -109,6 +112,8 @@ int mac_selinux_init(const char *prefix) { return r; } +/// UNNEEDED by elogind +#if 0 void mac_selinux_finish(void) { #ifdef HAVE_SELINUX @@ -119,6 +124,7 @@ void mac_selinux_finish(void) { label_hnd = NULL; #endif } +#endif // 0 int mac_selinux_fix(const char *path, bool ignore_enoent, bool ignore_erofs) { @@ -187,7 +193,6 @@ int mac_selinux_apply(const char *path, const char *label) { #endif return 0; } -#endif // 0 int mac_selinux_get_create_label_from_exe(const char *exe, char **label) { int r = -EOPNOTSUPP; @@ -202,11 +207,11 @@ int mac_selinux_get_create_label_from_exe(const char *exe, char **label) { if (!mac_selinux_use()) return -EOPNOTSUPP; - r = getcon(&mycon); + r = getcon_raw(&mycon); if (r < 0) return -errno; - r = getfilecon(exe, &fcon); + r = getfilecon_raw(exe, &fcon); if (r < 0) return -errno; @@ -228,7 +233,7 @@ int mac_selinux_get_our_label(char **label) { if (!mac_selinux_use()) return -EOPNOTSUPP; - r = getcon(label); + r = getcon_raw(label); if (r < 0) return -errno; #endif @@ -252,7 +257,7 @@ int mac_selinux_get_child_mls_label(int socket_fd, const char *exe, const char * if (!mac_selinux_use()) return -EOPNOTSUPP; - r = getcon(&mycon); + r = getcon_raw(&mycon); if (r < 0) return -errno; @@ -263,7 +268,7 @@ int mac_selinux_get_child_mls_label(int socket_fd, const char *exe, const char * if (!exec_label) { /* If there is no context set for next exec let's use context of target executable */ - r = getfilecon(exe, &fcon); + r = getfilecon_raw(exe, &fcon); if (r < 0) return -errno; } @@ -298,15 +303,22 @@ int mac_selinux_get_child_mls_label(int socket_fd, const char *exe, const char * return r; } -void mac_selinux_free(char *label) { +char* mac_selinux_free(char *label) { #ifdef HAVE_SELINUX + if (!label) + return NULL; + if (!mac_selinux_use()) - return; + return NULL; + freecon((security_context_t) label); #endif + + return NULL; } +#endif // 0 int mac_selinux_create_file_prepare(const char *path, mode_t mode) { int r = 0; @@ -364,6 +376,8 @@ void mac_selinux_create_file_clear(void) { #endif } +/// UNNEEDED by elogind +#if 0 int mac_selinux_create_socket_prepare(const char *label) { #ifdef HAVE_SELINUX @@ -463,3 +477,4 @@ skipped: #endif return bind(fd, addr, addrlen) < 0 ? -errno : 0; } +#endif // 0