chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
f13e30d
)
label: minor fixes
author
Lennart Poettering
<lennart@poettering.net>
Tue, 30 Aug 2011 23:21:02 +0000
(
01:21
+0200)
committer
Lennart Poettering
<lennart@poettering.net>
Tue, 30 Aug 2011 23:21:02 +0000
(
01:21
+0200)
src/label.c
patch
|
blob
|
history
diff --git
a/src/label.c
b/src/label.c
index 30653a213fcb4aed8899819566959f2d41ced8c8..3df7e55ba41316c2d44959dba238f2f1f2513354 100644
(file)
--- a/
src/label.c
+++ b/
src/label.c
@@
-186,8
+186,12
@@
int label_fifofile_set(const char *path) {
if (!use_selinux() || !label_hnd)
return 0;
if (!use_selinux() || !label_hnd)
return 0;
- if ((r = selabel_lookup_raw(label_hnd, &filecon, path, S_IFIFO)) == 0) {
- if ((r = setfscreatecon(filecon)) < 0) {
+ r = selabel_lookup_raw(label_hnd, &filecon, path, S_IFIFO);
+ if (r < 0)
+ r = -errno;
+ else if (r == 0) {
+ r = setfscreatecon(filecon);
+ if (r < 0) {
log_error("Failed to set SELinux file context on %s: %m", path);
r = -errno;
}
log_error("Failed to set SELinux file context on %s: %m", path);
r = -errno;
}
@@
-211,8
+215,12
@@
int label_symlinkfile_set(const char *path) {
if (!use_selinux() || !label_hnd)
return 0;
if (!use_selinux() || !label_hnd)
return 0;
- if ((r = selabel_lookup_raw(label_hnd, &filecon, path, S_IFLNK)) == 0) {
- if ((r = setfscreatecon(filecon)) < 0) {
+ r = selabel_lookup_raw(label_hnd, &filecon, path, S_IFLNK);
+ if (r < 0)
+ r = -errno;
+ else if (r == 0) {
+ r = setfscreatecon(filecon);
+ if (r < 0) {
log_error("Failed to set SELinux file context on %s: %m", path);
r = -errno;
}
log_error("Failed to set SELinux file context on %s: %m", path);
r = -errno;
}
@@
-287,7
+295,7
@@
int label_mkdir(const char *path, mode_t mode) {
goto skipped;
if (path_is_absolute(path))
goto skipped;
if (path_is_absolute(path))
- r = selabel_lookup_raw(label_hnd, &fcon, path,
mode
);
+ r = selabel_lookup_raw(label_hnd, &fcon, path,
S_IFDIR
);
else {
char *newpath;
else {
char *newpath;
@@
-295,7
+303,7
@@
int label_mkdir(const char *path, mode_t mode) {
if (!newpath)
return -ENOMEM;
if (!newpath)
return -ENOMEM;
- r = selabel_lookup_raw(label_hnd, &fcon, newpath,
mode
);
+ r = selabel_lookup_raw(label_hnd, &fcon, newpath,
S_IFDIR
);
free(newpath);
}
free(newpath);
}
@@
-361,7
+369,7
@@
int label_bind(int fd, const struct sockaddr *addr, socklen_t addrlen) {
return -ENOMEM;
if (path_is_absolute(path))
return -ENOMEM;
if (path_is_absolute(path))
- r = selabel_lookup_raw(label_hnd, &fcon, path,
0777
);
+ r = selabel_lookup_raw(label_hnd, &fcon, path,
S_IFSOCK
);
else {
char *newpath;
else {
char *newpath;
@@
-372,7
+380,7
@@
int label_bind(int fd, const struct sockaddr *addr, socklen_t addrlen) {
return -ENOMEM;
}
return -ENOMEM;
}
- r = selabel_lookup_raw(label_hnd, &fcon, newpath,
0777
);
+ r = selabel_lookup_raw(label_hnd, &fcon, newpath,
S_IFSOCK
);
free(newpath);
}
free(newpath);
}