mirror of
https://github.com/libssh2/libssh2.git
synced 2026-10-24 03:48:58 +03:00
Prior to this patch, the documentation stated that the `.text` buffers filled by the API caller are "free(3)d" by libssh2, referring to the default system deallocator. In reality however, libssh2 was using `SSH2_FREE*()` to free these buffers, respecting custom allocators, if set by the user via `libssh2_session_init_ex()`. libssh2 behaved this way since the initial implementation committed inda653774aa2005-06-11, v0.11 Later, examples were added that use `strdup()` to allocate, which was (and is) accurate because they do not use a custom allocator:9a1ce06e312007-07-22 Then, when the documentation landed, it incorrectly documented `free(3)`, perhaps basing it on the examples added earlier:d4aa801f6f2008-03-08 I assume that callers overriding the custom allocators are more likely to have fixed their code to adhere with how libssh2 actually behaved, rather than believing the documentation and live with an allocator mismatch for all these years. Therefore I think this is a documentation error, and this patch addresses this. Reported-by: Makise Kurisu Fixes GHSA-p6p8-66vc-3f24 Revertsce631aafe1#2659 Follow-up tod4aa801f6fFollow-up toda653774aaCloses #2661