https://bugs.kde.org/show_bug.cgi?id=417645
Harald Sitter <sit...@kde.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Version Fixed In| |20.04 Resolution|--- |FIXED Status|ASSIGNED |RESOLVED Latest Commit| |https://commits.kde.org/kio | |-extras/d8cf85ec2f0f13635de | |9482e8234f94f3bc444d1 --- Comment #2 from Harald Sitter <sit...@kde.org> --- Git commit d8cf85ec2f0f13635de9482e8234f94f3bc444d1 by Harald Sitter. Committed on 19/03/2020 at 11:31. Pushed by sitter into branch 'master'. sftp: fix seekPos + file resuming when part file is of size 11 Summary: previously seekPos would loop over offset==EAGAIN. the returned off_t of seek is not an error, but the offset or -1. this incorrect handling of the return value resulted in attempting to seek a file of the size 11 to get stuck in an infinite loop as EAGAIN==11 and so the loop would always be true. any other file size would have been fine, so the impact of this is actually super small. also sync up the expectation and handling a bit more between copy and put scenarios. specifically we always seek to the size we (think) the part file has, instead of letting the libc determine the end. this is in part so we can simply do an offset==size comparison to check if the seek worked to the end we expected it to. the seekPos() helper was removed as it now serves no purpose over calling lseek directly. FIXED-IN: 20.04 Test Plan: - create file - `split -b 11` file to get a segment exactly EAGAIN size - copy first segment to some other dir as file.part - open sftp to other dir and copy file there - copy doesn't get stuck, the file.part is removed, and the resulting file is same as input - vice versa copy from sftp to local Reviewers: ngraham, feverfew Reviewed By: ngraham Subscribers: bruns, kde-frameworks-devel, kfm-devel Tags: #dolphin, #frameworks Differential Revision: https://phabricator.kde.org/D27871 M +6 -12 sftp/kio_sftp.cpp https://commits.kde.org/kio-extras/d8cf85ec2f0f13635de9482e8234f94f3bc444d1 -- You are receiving this mail because: You are watching all bug changes.