Blame SOURCES/Correct-error-handling-bug-in-prior-commit.patch

d738b9
From ce220f7a4c0a6bda0004626d702a2a60dd51e181 Mon Sep 17 00:00:00 2001
d738b9
From: Greg Hudson <ghudson@mit.edu>
d738b9
Date: Thu, 23 Mar 2017 13:42:55 -0400
d738b9
Subject: [PATCH] Correct error handling bug in prior commit
d738b9
d738b9
In crypto_encode_der_cert(), if the second i2d_X509() invocation
d738b9
fails, make sure to free the allocated pointer and not the
d738b9
possibly-modified alias.
d738b9
d738b9
ticket: 8561
d738b9
(cherry picked from commit 7fdaef7c3280c86b5df25ae061fb04cc56d8620c)
d738b9
---
d738b9
 src/plugins/preauth/pkinit/pkinit_crypto_openssl.c | 4 ++--
d738b9
 1 file changed, 2 insertions(+), 2 deletions(-)
d738b9
d738b9
diff --git a/src/plugins/preauth/pkinit/pkinit_crypto_openssl.c b/src/plugins/preauth/pkinit/pkinit_crypto_openssl.c
d738b9
index 534161b19..25bcef292 100644
d738b9
--- a/src/plugins/preauth/pkinit/pkinit_crypto_openssl.c
d738b9
+++ b/src/plugins/preauth/pkinit/pkinit_crypto_openssl.c
d738b9
@@ -6089,10 +6089,10 @@ crypto_encode_der_cert(krb5_context context, pkinit_req_crypto_context reqctx,
d738b9
     if (len <= 0)
d738b9
         return EINVAL;
d738b9
     p = der = malloc(len);
d738b9
-    if (p == NULL)
d738b9
+    if (der == NULL)
d738b9
         return ENOMEM;
d738b9
     if (i2d_X509(reqctx->received_cert, &p) <= 0) {
d738b9
-        free(p);
d738b9
+        free(der);
d738b9
         return EINVAL;
d738b9
     }
d738b9
     *der_out = der;