]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Fix unlikely null dereference in mk_cred()
authorNalin Dahyabhai <nalin@redhat.com>
Wed, 25 Jun 2014 16:56:42 +0000 (12:56 -0400)
committerTom Yu <tlyu@mit.edu>
Fri, 6 Feb 2015 22:51:19 +0000 (17:51 -0500)
If krb5_encrypt_keyhelper() returns an error, the ciphertext structure
may contain a non-zero length, but it will already have freed the
pointer to its data, making encrypt_credencpart()'s subsequent attempt
to clear and free the memory fail.  Remove that logic.

Based on a patch from Jatin Nansi.

(cherry picked from commit 476284de8dc9a52b5544445cb1b316a417ae88f0)

ticket: 8107 (new)
version_fixed: 1.11.6
status: resolved

src/lib/krb5/krb/mk_cred.c

index 566d138163952a6f01bdfaeee3b8c4bb0da97631..0a58c9d51fbe42e5cd837e9ee7bbcebf68c86e03 100644 (file)
@@ -48,13 +48,6 @@ encrypt_credencpart(krb5_context context, krb5_cred_enc_part *pcredpart,
                                     KRB5_KEYUSAGE_KRB_CRED_ENCPART,
                                     scratch, pencdata);
 
-    if (retval) {
-        memset(pencdata->ciphertext.data, 0, pencdata->ciphertext.length);
-        free(pencdata->ciphertext.data);
-        pencdata->ciphertext.length = 0;
-        pencdata->ciphertext.data = 0;
-    }
-
     memset(scratch->data, 0, scratch->length);
     krb5_free_data(context, scratch);