Skip to content

v1.12.0: Bugfixes, and caching buffer allocation

Compare
Choose a tag to compare
@puellanivis puellanivis released this 26 Aug 14:44
· 380 commits to master since this release
60ec050

First release in some time. Fixing lots of bugs and adding io.ReaderAt compatibility of files, and various allocation and byte-slice optimizations courtesy of Nicola "@drakkan" Murino.
Below are the highlights:

Features:
[GH-285] Implement io.ReaderAt interface on File struct.
[GH-338] Remove an unnecessary allocate+copy when unmarshaling data packets.
[GH-343] Allocate byte-slices anticipating full capacity to avoid allocate+copies when they are extended.
[GH-344] Add an optional caching allocator, to allow reuse of buffers, rather than always allocating anew.

Bugfixes:
[GH-329] S_IFMT overridden for Windows, JS, WASM to the most prevalent POSIX value.
[GH-337]: In integration tests, expect /usr/lib/ssh/sftp-server as a possible executable location.
[GH-340]: Update golang.org/x/crypto to address vulnerability CVE-2020-9283
[GH-342]: Fix race condition between Connection and Close
[GH-355]: cleanPath operates on remote paths, so always use path (POSIX) rather than filepath (local file system rules).
[GH-363]: Fix some small unlikely RequestServer.Serve bugs.
[GH-372]: Add mutex protection to internal File offset used by Read.
[GH-373]: RequestServer incorrectly interpreted SSH_FXP_FSETSTAT as a "Put" request.

Updates:
[GH-365], [GH-376]: Update dependencies
In [GH-344], [GH-373]: travis now tests against Go versions { 1.14, 1.15 }, instead of { 1.12, 1.13 }