Finding
Sftp.put treats every remote stat exception as evidence that the target is absent. During a transient stat failure, it opens the remote target for replacement, truncating an existing multipart destination before writing the current block.
Proof target
Only treat a confirmed not-found response as absence. Propagate other stat failures without opening or modifying the target. Add deterministic tests for transient failure and true absence.
Scope
Fork validation for PROTO-12.
Finding
Sftp.puttreats every remote stat exception as evidence that the target is absent. During a transient stat failure, it opens the remote target for replacement, truncating an existing multipart destination before writing the current block.Proof target
Only treat a confirmed not-found response as absence. Propagate other stat failures without opening or modifying the target. Add deterministic tests for transient failure and true absence.
Scope
Fork validation for PROTO-12.