diff options
Diffstat (limited to 'contrib/bind9/lib/bind/resolv/res_sendsigned.c')
-rw-r--r-- | contrib/bind9/lib/bind/resolv/res_sendsigned.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/contrib/bind9/lib/bind/resolv/res_sendsigned.c b/contrib/bind9/lib/bind/resolv/res_sendsigned.c index d1d227457566..93ad5c979579 100644 --- a/contrib/bind9/lib/bind/resolv/res_sendsigned.c +++ b/contrib/bind9/lib/bind/resolv/res_sendsigned.c @@ -52,6 +52,7 @@ res_nsendsigned(res_state statp, const u_char *msg, int msglen, bufsize = msglen + 1024; newmsg = (u_char *) malloc(bufsize); if (newmsg == NULL) { + free(nstatp); errno = ENOMEM; return (-1); } @@ -102,11 +103,11 @@ res_nsendsigned(res_state statp, const u_char *msg, int msglen, retry: len = res_nsend(nstatp, newmsg, newmsglen, answer, anslen); - if (ret < 0) { + if (len < 0) { free (nstatp); free (newmsg); dst_free_key(dstkey); - return (ret); + return (len); } ret = ns_verify(answer, &len, dstkey, sig, siglen, |