This avoids a transfer error in the receiver.
- Fixed the parsing of an [IPv6_LITERAL_ADDR] when a USER@ is prefixed.
- 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.
- Fixed the rrsync script to avoid a server-side problem when -e is at the
start of the short options.
if (preserve_links && S_ISLNK(file->mode)) {
symlink_name = F_SYMLINK(file);
symlink_len = strlen(symlink_name);
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;
} else {
symlink_name = NULL;
symlink_len = 0;