From 840cecbe0e68bc71c0afea4b3d79bd5702d403d0 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Thu, 22 Oct 2009 18:56:02 +0200 Subject: [PATCH] Fix memory leaks in ssh_bind_options_set() if called twice. This fixes ticket #36. --- libssh/options.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libssh/options.c b/libssh/options.c index 46d822f3..e4b2027c 100644 --- a/libssh/options.c +++ b/libssh/options.c @@ -684,6 +684,7 @@ int ssh_bind_options_set(ssh_bind sshbind, enum ssh_bind_options_e type, ssh_set_error_invalid(sshbind, __FUNCTION__); return -1; } else { + SAFE_FREE(sshbind->bindaddr); sshbind->bindaddr = strdup(value); if (sshbind->bindaddr == NULL) { ssh_set_error_oom(sshbind); @@ -762,6 +763,7 @@ int ssh_bind_options_set(ssh_bind sshbind, enum ssh_bind_options_e type, ssh_set_error_invalid(sshbind, __FUNCTION__); return -1; } else { + SAFE_FREE(sshbind->rsakey); sshbind->rsakey = strdup(value); if (sshbind->rsakey == NULL) { ssh_set_error_oom(sshbind); @@ -774,6 +776,7 @@ int ssh_bind_options_set(ssh_bind sshbind, enum ssh_bind_options_e type, ssh_set_error_invalid(sshbind, __FUNCTION__); return -1; } else { + SAFE_FREE(sshbind->banner); sshbind->banner = strdup(value); if (sshbind->banner == NULL) { ssh_set_error_oom(sshbind);