krb5 commit: Correct error handling bug in prior commit

Greg Hudson <[email protected]>
Newsgroups gmane.comp.encryption.kerberos.cvs
Message-ID <[email protected]>
https://github.com/krb5/krb5/commit/7fdaef7c3280c86b5df25ae061fb04cc56d8620c
commit 7fdaef7c3280c86b5df25ae061fb04cc56d8620c
Author: Greg Hudson <[email protected]>
Date:   Thu Mar 23 13:42:55 2017 -0400

    Correct error handling bug in prior commit
    
    In crypto_encode_der_cert(), if the second i2d_X509() invocation
    fails, make sure to free the allocated pointer and not the
    possibly-modified alias.
    
    ticket: 8561

 src/plugins/preauth/pkinit/pkinit_crypto_openssl.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/plugins/preauth/pkinit/pkinit_crypto_openssl.c b/src/plugins/preauth/pkinit/pkinit_crypto_openssl.c
index a1ba911..be4fc47 100644
--- a/src/plugins/preauth/pkinit/pkinit_crypto_openssl.c
+++ b/src/plugins/preauth/pkinit/pkinit_crypto_openssl.c
@@ -6114,10 +6114,10 @@ crypto_encode_der_cert(krb5_context context, pkinit_req_crypto_context reqctx,
     if (len <= 0)
         return EINVAL;
     p = der = malloc(len);
-    if (p == NULL)
+    if (der == NULL)
         return ENOMEM;
     if (i2d_X509(reqctx->received_cert, &p) <= 0) {
-        free(p);
+        free(der);
         return EINVAL;
     }
     *der_out = der;
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.