- markus@cvs.openbsd.org 2011/09/12 08:46:15
[sftp-client.c]
fix leak in do_lsreaddir(); ok djm
diff --git a/sftp-client.c b/sftp-client.c
index b6d4021..d7eff70 100644
--- a/sftp-client.c
+++ b/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>
*
@@ -462,12 +462,12 @@
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;
@@ -510,6 +510,7 @@
fx2txt(status));
do_close(conn, handle, handle_len);
xfree(handle);
+ buffer_free(&msg);
return(status);
}
} else if (type != SSH2_FXP_NAME)