if (strcmp(dname,".") == 0
|| strcmp(dname,"..") == 0)
continue;
- snprintf(buf, sizeof(buf), "%s/%s", fname, dname);
+ pathjoin(buf, sizeof buf, fname, dname);
if (verbose > 0)
rprintf(FINFO,"deleting %s\n", buf);
if (delete_file(buf) != 0) {
}
change_uid = am_root && preserve_uid && st->st_uid != file->uid;
- change_gid = preserve_gid && file->gid != (gid_t)-1
+ change_gid = preserve_gid && file->gid != GID_NONE
&& st->st_gid != file->gid;
if (change_uid || change_gid) {
if (do_lchown(fname,
change_gid?file->gid:st->st_gid) != 0) {
/* shouldn't have attempted to change uid or gid
unless have the privilege */
- rprintf(FERROR, "chown %s failed: %s\n",
+ rprintf(FERROR, "%s %s failed: %s\n",
+ change_uid ? "chown" : "chgrp",
full_fname(fname), strerror(errno));
return 0;
}