#300: Memory leak in kex.c ------------------------------+-------------------- Reporter: ElectronShepherd | Owner: Type: defect | Status: new Priority: normal | Milestone: 1.5.0 Component: crypto | Version: 1.5.0 Keywords: memory leak | Blocked By: Blocks: | ------------------------------+-------------------- I'm picking up a memory leak in kex.c, line 205. The code is:
{{{ session->server_hostkey = LIBSSH2_ALLOC(session, session->server_hostkey_len); }}} For some execution paths, session->server_hostkey is already allocated, so when the contents of the pointer are replaced, there's a leak. Oddly, I found it while SSHing into a Synology device, and it's fully repeatable. What's strange is that I don't get the leak when connecting to a "proper" Linux install such as Debian 7. For now, my workaround is to add {{{ if (session->server_hostkey) { LIBSSH2_FREE(session, session->server_hostkey); } }}} just above the leaking call, but that doesn't seem like the most reliable solution to me, since it seems like the code is reusing a session which hasn't been cleared properly, and there's probably more cleanup that should be done against the session. -- Ticket URL: <https://trac.libssh2.org/ticket/300> libssh2 <https://trac.libssh2.org/> C library for writing portable SSH2 clients _______________________________________________ libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel