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:12:13 +0200 |
commit | 61d032fc03e0055c859931f466bc75fbdf36385a (patch) | |
tree | f0ca22f78aa5fccf24aa5515e8bec5cd2e931e33 /src/misc.c | |
parent | dc8103925c2efc8bc321c092c8eb8d453081c69d (diff) | |
download | libssh-61d032fc03e0055c859931f466bc75fbdf36385a.tar.gz libssh-61d032fc03e0055c859931f466bc75fbdf36385a.tar.xz libssh-61d032fc03e0055c859931f466bc75fbdf36385a.zip |
misc: Don't leak memory on ssh_path_expand_escape() on error.
Diffstat (limited to 'src/misc.c')
-rw-r--r-- | src/misc.c | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -758,11 +758,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; } @@ -770,6 +772,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); |