extern int preserve_xattrs;
extern char *module_dir;
extern unsigned int module_dirlen;
-extern mode_t orig_umask;
extern char *partial_dir;
extern filter_rule_list daemon_filter_list;
}
}
-/* This creates a new directory with default permissions. Since there
- * might be some directory-default permissions affecting this, we can't
- * force the permissions directly using the original umask and mkdir(). */
+/* This creates a new directory with default permissions. Now that we
+ * leave the original umask set, we can just mkdir with mode 777. */
int mkdir_defmode(char *fname)
{
- int ret;
-
- umask(orig_umask);
- ret = do_mkdir(fname, ACCESSPERMS);
- umask(0);
-
- return ret;
+ return do_mkdir(fname, ACCESSPERMS);
}
/* Create any necessary directories in fname. Any missing directories are
} else
end = fname + strlen(fname);
- umask(orig_umask); /* NOTE: don't return before setting this back to 0! */
-
/* Try to find an existing dir, starting from the deepest dir. */
for (p = end; ; ) {
if (do_mkdir(fname, ACCESSPERMS) == 0) {
ret++;
}
- umask(0);
-
if (flags & MKP_DROP_NAME)
*end = '/';
}
}
-/* Parse a user name or (optionally) a number into a uid */
-int user_to_uid(const char *name, uid_t *uid_p, BOOL num_ok)
-{
- struct passwd *pass;
- if (!name || !*name)
- return 0;
- if (num_ok && name[strspn(name, "0123456789")] == '\0') {
- *uid_p = atol(name);
- return 1;
- }
- if (!(pass = getpwnam(name)))
- return 0;
- *uid_p = pass->pw_uid;
- return 1;
-}
-
-/* Parse a group name or (optionally) a number into a gid */
-int group_to_gid(const char *name, gid_t *gid_p, BOOL num_ok)
-{
- struct group *grp;
- if (!name || !*name)
- return 0;
- if (num_ok && name[strspn(name, "0123456789")] == '\0') {
- *gid_p = atol(name);
- return 1;
- }
- if (!(grp = getgrnam(name)))
- return 0;
- *gid_p = grp->gr_gid;
- return 1;
-}
-
/** Lock a byte range in a open file */
int lock_range(int fd, int offset, int len)
{
#define UNIT (1 << 16)
-uint32 fuzzy_distance(const char *s1, int len1, const char *s2, int len2)
+uint32 fuzzy_distance(const char *s1, unsigned len1, const char *s2, unsigned len2)
{
uint32 a[MAXPATHLEN], diag, above, left, diag_inc, above_inc, left_inc;
int32 cost;
- int i1, i2;
+ unsigned i1, i2;
if (!len1 || !len2) {
if (!len1) {