diff options
author | Andreas Schneider <asn@cryptomilk.org> | 2012-10-05 10:51:43 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2012-10-05 11:44:50 +0200 |
commit | 0d029e7038d074a064e2870ec35441403301d099 (patch) | |
tree | 0e9896698e12579c863327e35806a0f6260f60ff | |
parent | aae725a44c4d037125faebf88a8c4dd430d1c179 (diff) | |
download | libssh-0d029e7038d074a064e2870ec35441403301d099.tar.gz libssh-0d029e7038d074a064e2870ec35441403301d099.tar.xz libssh-0d029e7038d074a064e2870ec35441403301d099.zip |
misc: Don't leak memory on ssh_path_expand_escape() on error.
(cherry picked from commit 61d032fc03e0055c859931f466bc75fbdf36385a)
-rw-r--r-- | src/misc.c | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -760,11 +760,13 @@ char *ssh_path_expand_escape(ssh_session session, const char *s) { default: ssh_set_error(session, SSH_FATAL, "Wrong escape sequence detected"); + free(r); return NULL; } if (x == NULL) { ssh_set_error_oom(session); + free(r); return NULL; } @@ -772,6 +774,8 @@ char *ssh_path_expand_escape(ssh_session session, const char *s) { if (i > MAX_BUF_SIZE) { ssh_set_error(session, SSH_FATAL, "String too long"); + free(x); + free(r); return NULL; } l = strlen(buf); |