diff options
author | daniel@openbsd.org <daniel@openbsd.org> | 2014-10-14 03:09:59 +0000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2014-10-20 14:40:06 +1100 |
commit | 165bc8786299e261706ed60342985f9de93a7461 (patch) | |
tree | 5ed0be68328892c8c9765665924426a0e5b89d9a /ssh-ed25519.c | |
parent | b1ba15f3885947c245c2dbfaad0a04ba050abea0 (diff) |
upstream commit
plug a memory leak; from Maxime Villard.
ok djm@
Diffstat (limited to 'ssh-ed25519.c')
-rw-r--r-- | ssh-ed25519.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/ssh-ed25519.c b/ssh-ed25519.c index cb87d4790..9922816c7 100644 --- a/ssh-ed25519.c +++ b/ssh-ed25519.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssh-ed25519.c,v 1.4 2014/06/24 01:13:21 djm Exp $ */ | 1 | /* $OpenBSD: ssh-ed25519.c,v 1.5 2014/10/14 03:09:59 daniel Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2013 Markus Friedl <markus@openbsd.org> | 3 | * Copyright (c) 2013 Markus Friedl <markus@openbsd.org> |
4 | * | 4 | * |
@@ -128,8 +128,10 @@ ssh_ed25519_verify(const struct sshkey *key, | |||
128 | r = SSH_ERR_INVALID_FORMAT; | 128 | r = SSH_ERR_INVALID_FORMAT; |
129 | goto out; | 129 | goto out; |
130 | } | 130 | } |
131 | if (datalen >= SIZE_MAX - len) | 131 | if (datalen >= SIZE_MAX - len) { |
132 | return SSH_ERR_INVALID_ARGUMENT; | 132 | r = SSH_ERR_INVALID_ARGUMENT; |
133 | goto out; | ||
134 | } | ||
133 | smlen = len + datalen; | 135 | smlen = len + datalen; |
134 | mlen = smlen; | 136 | mlen = smlen; |
135 | if ((sm = malloc(smlen)) == NULL || (m = xmalloc(mlen)) == NULL) { | 137 | if ((sm = malloc(smlen)) == NULL || (m = xmalloc(mlen)) == NULL) { |