]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
find_signer: eliminate memory leak
authorNikos Mavrogiannopoulos <nmav@gnutls.org>
Fri, 12 May 2017 15:58:55 +0000 (17:58 +0200)
committerKarl Tarbe <karl.tarbe@cyber.ee>
Mon, 15 May 2017 12:58:02 +0000 (15:58 +0300)
Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
lib/x509/pkcs7.c

index 640f7a4c68ba09070862f34201704d5c02645d63..e2855460609a2569643168715d0dde2bbb5d2e61 100644 (file)
@@ -1323,8 +1323,11 @@ gnutls_x509_crt_t find_signer(gnutls_pkcs7_t pkcs7, gnutls_x509_trust_list_t tl,
 
                                issuer = find_verified_issuer_of(pkcs7, issuer, purpose, vflags);
 
-                               if (issuer != NULL && gnutls_x509_crt_check_issuer(issuer, issuer))
+                               if (issuer != NULL && gnutls_x509_crt_check_issuer(issuer, issuer)) {
+                                       if (prev) gnutls_x509_crt_deinit(prev);
+                                       prev = issuer;
                                        break;
+                               }
                        } while(issuer != NULL);
 
                        issuer = prev; /* the last we have seen */