summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgsoares <gsoares@openbsd.org>2015-10-21 11:33:03 +0000
committergsoares <gsoares@openbsd.org>2015-10-21 11:33:03 +0000
commit030798fdb9cafe76df0d17a336a02a4e9712f079 (patch)
tree0021c3f59138a89545451677bce6bc06faa622fd
parentadd missing rcsid (diff)
downloadwireguard-openbsd-030798fdb9cafe76df0d17a336a02a4e9712f079.tar.xz
wireguard-openbsd-030798fdb9cafe76df0d17a336a02a4e9712f079.zip
fix memory leak in error path
ok djm@
-rw-r--r--usr.bin/ssh/packet.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/usr.bin/ssh/packet.c b/usr.bin/ssh/packet.c
index 110e0c3acb5..a5ca6855108 100644
--- a/usr.bin/ssh/packet.c
+++ b/usr.bin/ssh/packet.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: packet.c,v 1.215 2015/09/21 04:31:00 djm Exp $ */
+/* $OpenBSD: packet.c,v 1.216 2015/10/21 11:33:03 gsoares Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -2027,8 +2027,10 @@ ssh_packet_write_wait(struct ssh *ssh)
NFDBITS), sizeof(fd_mask));
if (setp == NULL)
return SSH_ERR_ALLOC_FAIL;
- if ((r = ssh_packet_write_poll(ssh)) != 0)
+ if ((r = ssh_packet_write_poll(ssh)) != 0) {
+ free(setp);
return r;
+ }
while (ssh_packet_have_data_to_write(ssh)) {
memset(setp, 0, howmany(state->connection_out + 1,
NFDBITS) * sizeof(fd_mask));