aboutsummaryrefslogtreecommitdiff
path: root/libbb
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2007-03-12 18:22:55 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2007-03-12 18:22:55 +0000
commit39c651e9097e0e55a52c897982d6e84d281f7396 (patch)
treead535283af2299825f65b6b44c889dc7e7bfc842 /libbb
parentb3f09f4a5092aacbdc3da80d4fefeaf06445a4f8 (diff)
downloadbusybox-w32-39c651e9097e0e55a52c897982d6e84d281f7396.tar.gz
busybox-w32-39c651e9097e0e55a52c897982d6e84d281f7396.tar.bz2
busybox-w32-39c651e9097e0e55a52c897982d6e84d281f7396.zip
introduce and use setfscreatecon_or_die
(patch by Yuichi Nakamura <ynakam@hitachisoft.jp>) runcon: *yet another* fix for vda's brainfart :(
Diffstat (limited to 'libbb')
-rw-r--r--libbb/copy_file.c2
-rw-r--r--libbb/selinux_common.c10
2 files changed, 11 insertions, 1 deletions
diff --git a/libbb/copy_file.c b/libbb/copy_file.c
index 6391824aa..07564afd0 100644
--- a/libbb/copy_file.c
+++ b/libbb/copy_file.c
@@ -74,7 +74,7 @@ int copy_file(const char *source, const char *dest, int flags)
74 } 74 }
75 } else { 75 } else {
76 if (errno == ENOTSUP || errno == ENODATA) { 76 if (errno == ENOTSUP || errno == ENODATA) {
77 setfscreatecon(NULL); 77 setfscreatecon_or_die(NULL);
78 } else { 78 } else {
79 bb_perror_msg("cannot lgetfilecon %s", source); 79 bb_perror_msg("cannot lgetfilecon %s", source);
80 return -1; 80 return -1;
diff --git a/libbb/selinux_common.c b/libbb/selinux_common.c
index 70d63a465..d506f0636 100644
--- a/libbb/selinux_common.c
+++ b/libbb/selinux_common.c
@@ -28,3 +28,13 @@ error:
28 context_free(con); 28 context_free(con);
29 return NULL; 29 return NULL;
30} 30}
31
32void setfscreatecon_or_die(security_context_t scontext)
33{
34 if (setfscreatecon(scontext) < 0) {
35 /* Can be NULL. All known printf implementations
36 * display "(null)", "<null>" etc */
37 bb_perror_msg_and_die("cannot set default "
38 "file creation context to %s", scontext);
39 }
40}