integration/all-fixes
main
This PR fixes all open issues across five categories. It merges 5 feature branches into one comprehensive fix:
realpath()
file_save_to_disk()
lstat()
stat()
MAX_DATA_PAYLOAD_SIZE
MAX_STRING_SIZE
ZSTD_CONTENTSIZE_UNKNOWN
SSL_ERROR_WANT_READ
SSL_ERROR_WANT_WRITE
send_n_data
receive_n_data
SSL_set1_host()
S_ISLNK
delete_extras_walk()
MAX_DELTA_BLOCKS
MAX_DELTA_INSTRUCTIONS
config_delete()
send_delete_manifest()
return -1
return 1
io_ssl
static
static __thread
server_host
receive_thread()
file_receive()
receive_chunk_enqueue()
parse_environment()
parse_args()
validate_config()
config_create()
send_dry_run_manifest()
strtol()
config_send()
config_receive()
--links
--copy-links
--safe-links
--copy-unsafe-links
--hard-links
--acls
--xattrs
--devices
--sparse
--itemize-changes
--out-format
--info
--debug
--list-only
--human-readable
--update
--inplace
--append
--append-verify
--delete-excluded
--delete-after
--max-delete
--filter
--files-from
--cvs-exclude
--prune-empty-dirs
--relative
--rsh
--rsync-path
--temp-dir
--compare-dest
--copy-dest
--link-dest
Closes: #154, #156, #157, #159, #160, #161, #162, #170, #158, #163, #164, #165, #166, #167, #168, #169, #149, #150, #151, #152, #131, #132, #133, #135, #136, #137, #120, #121, #122, #127, #128, #129, #130
No dependencies set.
The note is not visible to the blocked user.
Summary
This PR fixes all open issues across five categories. It merges 5 feature branches into one comprehensive fix:
🔒 Security (#154, #156, #157, #159, #160, #161, #162, #170)
realpath()validation infile_save_to_disk(),lstat()instead ofstat()in delete pathsMAX_DATA_PAYLOAD_SIZE(100MB) andMAX_STRING_SIZE(64KB)ZSTD_CONTENTSIZE_UNKNOWNwith 3× compressed size fallbackSSL_ERROR_WANT_READ/SSL_ERROR_WANT_WRITEhandled insend_n_data/receive_n_dataSSL_set1_host()callS_ISLNKindelete_extras_walk()MAX_DELTA_BLOCKS(1M) andMAX_DELTA_INSTRUCTIONS(1M) caps🐛 Bug Fixes (#158, #163, #164, #165, #166, #167, #168, #169)
config_delete()in non-multithreaded handler pathsend_delete_manifest()checks all return valuesreturn -1toreturn 1in all transfer functionsio_sslchanged fromstatictostatic __threadserver_hostdefault handlingreceive_thread()propagatesfile_receive()andreceive_chunk_enqueue()errors🔧 Code Quality (#149, #150, #151, #152)
parse_environment(),parse_args(),validate_config()config_create()→ zero-param with sensible defaultssend_dry_run_manifest()andsend_delete_manifest()strtol()validation in CLI parsing🧪 Test Coverage (#131, #132, #133, #135, #136, #137)
config_send()/config_receive()round-trip, version mismatch🚀 Rsync Parity Features (#120, #121, #122, #127, #128, #129, #130)
--links,--copy-links,--safe-links,--copy-unsafe-links--hard-links,--acls,--xattrs,--devices,--sparse--itemize-changes,--out-format,--info,--debug,--list-only,--human-readable--update,--inplace,--append,--append-verify--delete-excluded,--delete-after,--max-delete--filter,--files-from,--cvs-exclude,--prune-empty-dirs,--relative--rsh,--rsync-path,--temp-dir,--compare-dest,--copy-dest,--link-destTest Results
Closes: #154, #156, #157, #159, #160, #161, #162, #170, #158, #163, #164, #165, #166, #167, #168, #169, #149, #150, #151, #152, #131, #132, #133, #135, #136, #137, #120, #121, #122, #127, #128, #129, #130