X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Futil.c;h=ec5c7ca91aacbb19c807015c402fc5baed38cba1;hp=39dca0d4587ffdea104964a078be4e133506b017;hb=6319292f15478f763777738c9a98faa99ae819c1;hpb=7d49c54770b16c54fcad41860535b592cce3570a diff --git a/src/util.c b/src/util.c index 39dca0d45..ec5c7ca91 100644 --- a/src/util.c +++ b/src/util.c @@ -122,7 +122,7 @@ int label_fix(const char *path) { struct stat st; security_context_t fcon; - if (!use_selinux()) + if (!use_selinux() || !label_hnd) return 0; r = lstat(path, &st); @@ -147,7 +147,7 @@ int label_fix(const char *path) { void label_finish(void) { #ifdef HAVE_SELINUX - if (use_selinux()) + if (use_selinux() && label_hnd) selabel_close(label_hnd); #endif } @@ -270,7 +270,7 @@ static int label_mkdir( int r; security_context_t fcon = NULL; - if (use_selinux()) { + if (use_selinux() && label_hnd) { if (path[0] == '/') { r = selabel_lookup_raw(label_hnd, &fcon, path, mode); } @@ -300,7 +300,7 @@ static int label_mkdir( r = mkdir(path, mode); finish: - if (use_selinux()) { + if (use_selinux() && label_hnd) { setfscreatecon(NULL); freecon(fcon); }