diff options
author | 2011-09-12 08:46:15 +0000 | |
---|---|---|
committer | 2011-09-12 08:46:15 +0000 | |
commit | 9367d9f29e38d13bf1a76cac57ab89656a1281dc (patch) | |
tree | 4bb70c59f6d8a9e4174646fc7d2b443a839dab5b | |
parent | remove unused header (diff) | |
download | wireguard-openbsd-9367d9f29e38d13bf1a76cac57ab89656a1281dc.tar.xz wireguard-openbsd-9367d9f29e38d13bf1a76cac57ab89656a1281dc.zip |
fix leak in do_lsreaddir(); ok djm
-rw-r--r-- | usr.bin/ssh/sftp-client.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/usr.bin/ssh/sftp-client.c b/usr.bin/ssh/sftp-client.c index ff9f29c27c5..6f18e009974 100644 --- a/usr.bin/ssh/sftp-client.c +++ b/usr.bin/ssh/sftp-client.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sftp-client.c,v 1.95 2011/09/11 16:07:26 markus Exp $ */ +/* $OpenBSD: sftp-client.c,v 1.96 2011/09/12 08:46:15 markus Exp $ */ /* * Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org> * @@ -455,12 +455,12 @@ do_lsreaddir(struct sftp_conn *conn, char *path, int printflag, buffer_put_cstring(&msg, path); send_msg(conn, &msg); - buffer_clear(&msg); - handle = get_handle(conn, id, &handle_len, "remote readdir(\"%s\")", path); - if (handle == NULL) + if (handle == NULL) { + buffer_free(&msg); return -1; + } if (dir) { ents = 0; @@ -503,6 +503,7 @@ do_lsreaddir(struct sftp_conn *conn, char *path, int printflag, fx2txt(status)); do_close(conn, handle, handle_len); xfree(handle); + buffer_free(&msg); return(status); } } else if (type != SSH2_FXP_NAME) |