diff options
Diffstat (limited to 'ssh-dss.c')
-rw-r--r-- | ssh-dss.c | 12 |
1 files changed, 7 insertions, 5 deletions
@@ -23,7 +23,7 @@ | |||
23 | */ | 23 | */ |
24 | 24 | ||
25 | #include "includes.h" | 25 | #include "includes.h" |
26 | RCSID("$OpenBSD: ssh-dss.c,v 1.8 2001/09/17 19:27:15 stevesk Exp $"); | 26 | RCSID("$OpenBSD: ssh-dss.c,v 1.9 2001/11/07 22:10:28 markus Exp $"); |
27 | 27 | ||
28 | #include <openssl/bn.h> | 28 | #include <openssl/bn.h> |
29 | #include <openssl/evp.h> | 29 | #include <openssl/evp.h> |
@@ -138,17 +138,19 @@ ssh_dss_verify( | |||
138 | if (strcmp("ssh-dss", ktype) != 0) { | 138 | if (strcmp("ssh-dss", ktype) != 0) { |
139 | error("ssh_dss_verify: cannot handle type %s", ktype); | 139 | error("ssh_dss_verify: cannot handle type %s", ktype); |
140 | buffer_free(&b); | 140 | buffer_free(&b); |
141 | xfree(ktype); | ||
141 | return -1; | 142 | return -1; |
142 | } | 143 | } |
144 | xfree(ktype); | ||
143 | sigblob = buffer_get_string(&b, &len); | 145 | sigblob = buffer_get_string(&b, &len); |
144 | rlen = buffer_len(&b); | 146 | rlen = buffer_len(&b); |
147 | buffer_free(&b); | ||
145 | if(rlen != 0) { | 148 | if(rlen != 0) { |
146 | error("remaining bytes in signature %d", rlen); | 149 | error("ssh_dss_verify: " |
147 | buffer_free(&b); | 150 | "remaining bytes in signature %d", rlen); |
151 | xfree(sigblob); | ||
148 | return -1; | 152 | return -1; |
149 | } | 153 | } |
150 | buffer_free(&b); | ||
151 | xfree(ktype); | ||
152 | } | 154 | } |
153 | 155 | ||
154 | if (len != SIGBLOB_LEN) { | 156 | if (len != SIGBLOB_LEN) { |