+2008-05-26 Nicolas François <nicolas.francois@centraliens.net>
+
+ * libmisc/copydir.c: selinux_checked, selinux_enabled, and set_orig
+ are now booleans.
+
2008-05-26 Nicolas François <nicolas.francois@centraliens.net>
* libmisc/setugid.c (setup_uid_gid): The is_console argument is now
#include "defines.h"
#ifdef WITH_SELINUX
#include <selinux/selinux.h>
-static int selinux_enabled = -1;
#endif
static const char *src_orig;
static const char *dst_orig;
*/
static int selinux_file_context (const char *dst_name)
{
+ static bool selinux_checked = false;
+ static bool selinux_enabled;
security_context_t scontext = NULL;
- if (selinux_enabled < 0) {
+ if (!selinux_checked) {
selinux_enabled = is_selinux_enabled () > 0;
+ selinux_checked = true;
}
+
if (selinux_enabled) {
/* Get the default security context for this file */
if (matchpathcon (dst_name, 0, &scontext) < 0) {
char src_name[1024];
char dst_name[1024];
int err = 0;
- int set_orig = 0;
+ bool set_orig = false;
struct DIRECT *ent;
DIR *dir;
return -1;
}
- if (src_orig == 0) {
+ if (src_orig == NULL) {
src_orig = src_root;
dst_orig = dst_root;
- set_orig++;
+ set_orig = true;
}
while ((0 == err) && (ent = readdir (dir)) != NULL) {
/*
(void) closedir (dir);
if (set_orig) {
- src_orig = 0;
- dst_orig = 0;
+ src_orig = NULL;
+ dst_orig = NULL;
}
return err;
}