]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Fix unlikely memory error in krb5_rd_cred
authorNeng Xue <xnsuda@yahoo.com>
Wed, 7 May 2014 21:11:14 +0000 (14:11 -0700)
committerGreg Hudson <ghudson@mit.edu>
Thu, 8 May 2014 15:08:54 +0000 (11:08 -0400)
If an error occurs in the for loop in krb5_rd_cred_basic (which should
only happen on an ENOMEM), do not leave the caller with a dangling
reference to the freed credential array.

ticket: 7908 (new)
target_version: 1.12.2

src/lib/krb5/krb/rd_cred.c

index 8be7f81d6f7e5c5c33589ef631266e35d895cd47..acc05c99bcc978032d9180ff7c853c1987d691d2 100644 (file)
@@ -170,8 +170,10 @@ krb5_rd_cred_basic(krb5_context context, krb5_data *pcreddata,
     (*pppcreds)[i] = NULL;
 
 cleanup:
-    if (retval)
+    if (retval) {
         krb5_free_tgt_creds(context, *pppcreds);
+        *pppcreds = NULL;
+    }
 
 cleanup_cred:
     krb5_free_cred(context, pcred);