diff options
author | gsoares@openbsd.org <gsoares@openbsd.org> | 2015-10-21 11:33:03 +0000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2015-10-25 11:42:04 +1100 |
commit | 66d2e229baa9fe57b868c373b05f7ff3bb20055b (patch) | |
tree | ef1f2b97ed377e77f00a370d1d4e92fa5b97ab80 | |
parent | 7d6c0362039ceacdc1366b5df29ad5d2693c13e5 (diff) |
upstream commit
fix memory leak in error path ok djm@
Upstream-ID: dd2f402b0a0029b755df029fc7f0679e1365ce35
-rw-r--r-- | packet.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: packet.c,v 1.215 2015/09/21 04:31:00 djm Exp $ */ | 1 | /* $OpenBSD: packet.c,v 1.216 2015/10/21 11:33:03 gsoares Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -2040,8 +2040,10 @@ ssh_packet_write_wait(struct ssh *ssh) | |||
2040 | NFDBITS), sizeof(fd_mask)); | 2040 | NFDBITS), sizeof(fd_mask)); |
2041 | if (setp == NULL) | 2041 | if (setp == NULL) |
2042 | return SSH_ERR_ALLOC_FAIL; | 2042 | return SSH_ERR_ALLOC_FAIL; |
2043 | if ((r = ssh_packet_write_poll(ssh)) != 0) | 2043 | if ((r = ssh_packet_write_poll(ssh)) != 0) { |
2044 | free(setp); | ||
2044 | return r; | 2045 | return r; |
2046 | } | ||
2045 | while (ssh_packet_have_data_to_write(ssh)) { | 2047 | while (ssh_packet_have_data_to_write(ssh)) { |
2046 | memset(setp, 0, howmany(state->connection_out + 1, | 2048 | memset(setp, 0, howmany(state->connection_out + 1, |
2047 | NFDBITS) * sizeof(fd_mask)); | 2049 | NFDBITS) * sizeof(fd_mask)); |