Do not try to send a symlink with a 0-length value.

This avoids a transfer error in the receiver.
This commit is contained in:
Wayne Davison
2009-02-04 07:53:35 -08:00
parent 650bca3770
commit 4dea1a9492
2 changed files with 11 additions and 0 deletions

3
NEWS
View File

@@ -11,6 +11,9 @@ Changes since 3.0.5:
- Fixed the parsing of an [IPv6_LITERAL_ADDR] when a USER@ is prefixed.
- The sender now skips a (bogus) symlink that has a 0-length value, which
avoids a transfer error in the receiver.
- Fixed the rrsync script to avoid a server-side problem when -e is at the
start of the short options.

View File

@@ -1342,6 +1342,14 @@ static struct file_struct *send_file_name(int f, struct file_list *flist,
if (preserve_links && S_ISLNK(file->mode)) {
symlink_name = F_SYMLINK(file);
symlink_len = strlen(symlink_name);
if (symlink_len == 0) {
io_error |= IOERR_GENERAL;
f_name(file, fbuf);
rprintf(FERROR_XFER,
"skipping symlink with 0-length value: %s\n",
full_fname(fbuf));
return NULL;
}
} else {
symlink_name = NULL;
symlink_len = 0;