diff options
author | Denis Vlasenko | 2007-03-12 18:22:55 +0000 |
---|---|---|
committer | Denis Vlasenko | 2007-03-12 18:22:55 +0000 |
commit | 39c651e9097e0e55a52c897982d6e84d281f7396 (patch) | |
tree | ad535283af2299825f65b6b44c889dc7e7bfc842 /libbb | |
parent | b3f09f4a5092aacbdc3da80d4fefeaf06445a4f8 (diff) | |
download | busybox-39c651e9097e0e55a52c897982d6e84d281f7396.zip busybox-39c651e9097e0e55a52c897982d6e84d281f7396.tar.gz |
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.c | 2 | ||||
-rw-r--r-- | libbb/selinux_common.c | 10 |
2 files changed, 11 insertions, 1 deletions
diff --git a/libbb/copy_file.c b/libbb/copy_file.c index 6391824..07564af 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) } } else { if (errno == ENOTSUP || errno == ENODATA) { - setfscreatecon(NULL); + setfscreatecon_or_die(NULL); } else { bb_perror_msg("cannot lgetfilecon %s", source); return -1; diff --git a/libbb/selinux_common.c b/libbb/selinux_common.c index 70d63a4..d506f06 100644 --- a/libbb/selinux_common.c +++ b/libbb/selinux_common.c @@ -28,3 +28,13 @@ error: context_free(con); return NULL; } + +void setfscreatecon_or_die(security_context_t scontext) +{ + if (setfscreatecon(scontext) < 0) { + /* Can be NULL. All known printf implementations + * display "(null)", "<null>" etc */ + bb_perror_msg_and_die("cannot set default " + "file creation context to %s", scontext); + } +} |