if (!file) {
write_byte(f, 0);
modtime = 0, mode = 0;
- dev = 0, rdev = makedev(0, 0);
+ dev = 0, rdev = MAKEDEV(0, 0);
rdev_major = 0;
uid = 0, gid = 0;
*lastname = '\0';
flags |= XMIT_RDEV_MINOR_IS_SMALL;
}
} else if (protocol_version < 28)
- rdev = makedev(0, 0);
+ rdev = MAKEDEV(0, 0);
if (file->uid == uid)
flags |= XMIT_SAME_UID;
else
if (!flist) {
modtime = 0, mode = 0;
- dev = 0, rdev = makedev(0, 0);
+ dev = 0, rdev = MAKEDEV(0, 0);
rdev_major = 0;
uid = 0, gid = 0;
*lastname = '\0';
rdev_minor = read_byte(f);
else
rdev_minor = read_int(f);
- rdev = makedev(rdev_major, rdev_minor);
+ rdev = MAKEDEV(rdev_major, rdev_minor);
}
} else if (protocol_version < 28)
- rdev = makedev(0, 0);
+ rdev = MAKEDEV(0, 0);
#ifdef SUPPORT_LINKS
if (preserve_links && S_ISLNK(mode)) {
if (linkname_len) {
file->u.link = bp;
read_sbuf(f, bp, linkname_len - 1);
+ if (lp_munge_symlinks(module_id))
+ sanitize_path(bp, bp, "", lastdir_depth, NULL);
bp += linkname_len;
}
#endif
} else
break;
}
+ if (len == 1 && fn[0] == '/')
+ fn[len++] = '.';
fn[len] = '\0';
/* Reject a ".." dir in the active part of the path. */
for (p = fn; (p = strstr(p, "..")) != NULL; p += 2) {