for ( ; b; name = b + 1, b = strchr(name, '/')) {
*b = '\0';
- while (mkdir_defmode(backup_dir_buf) < 0) {
+ while (do_mkdir(backup_dir_buf, ACCESSPERMS) < 0) {
if (errno == EEXIST) {
val = validate_backup_dir();
if (val > 0)
/* copy fname into backup_dir_buf while validating the dirs. */
if (copy_valid_path(fname))
return backup_dir_buf;
+ /* copy_valid_path() has printed an error message. */
return NULL;
- } else {
- if (stringjoin(backup_dir_buf, MAXPATHLEN,
- fname, backup_suffix, NULL) < MAXPATHLEN)
- return backup_dir_buf;
}
+ if (stringjoin(backup_dir_buf, MAXPATHLEN, fname, backup_suffix, NULL) < MAXPATHLEN)
+ return backup_dir_buf;
+
rprintf(FERROR, "backup filename too long\n");
return NULL;
}
const char *sl = F_SYMLINK(file);
if (safe_symlinks && unsafe_symlink(sl, fname)) {
if (INFO_GTE(SYMSAFE, 1)) {
- rprintf(FINFO, "ignoring unsafe symlink %s -> %s\n",
- full_fname(buf), sl);
+ rprintf(FINFO, "not backing up unsafe symlink \"%s\" -> \"%s\"\n",
+ fname, sl);
}
ret = 2;
} else {