label: don't try to create labelled directories more than once
This commit is contained in:
@@ -35,24 +35,19 @@
|
|||||||
static int label_mkdir(const char *path, mode_t mode) {
|
static int label_mkdir(const char *path, mode_t mode) {
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
if (mac_selinux_use()) {
|
if (mac_selinux_use())
|
||||||
r = mac_selinux_mkdir(path, mode);
|
return mac_selinux_mkdir(path, mode);
|
||||||
if (r < 0)
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mac_smack_use()) {
|
if (mac_smack_use()) {
|
||||||
r = mkdir(path, mode);
|
r = mkdir(path, mode);
|
||||||
if (r < 0 && errno != EEXIST)
|
if (r < 0)
|
||||||
return -errno;
|
return -errno;
|
||||||
|
|
||||||
r = mac_smack_fix(path, false, false);
|
return mac_smack_fix(path, false, false);
|
||||||
if (r < 0)
|
|
||||||
return r;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
r = mkdir(path, mode);
|
r = mkdir(path, mode);
|
||||||
if (r < 0 && errno != EEXIST)
|
if (r < 0)
|
||||||
return -errno;
|
return -errno;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user