]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Prevent null dereference with keyboard master key 679/head
authorGreg Hudson <ghudson@mit.edu>
Tue, 18 Jul 2017 16:29:12 +0000 (12:29 -0400)
committerGreg Hudson <ghudson@mit.edu>
Mon, 24 Jul 2017 14:53:19 +0000 (10:53 -0400)
If krb5_db_fetch_mkey() prompts for a master key and needs to
determine the kvno, check that the master entry contains any key data
before dereferencing the first element.  Reported by Joshua Schaeffer.

ticket: 8600 (new)
target_version: 1.15-next
target_version: 1.14-next
tags: pullup

src/lib/kdb/kdb5.c

index ad637b6d43674bdca3c4fe42cf9ccf7f328ec945..da5332217fef56ee2d6762531207620a87d8f5ae 100644 (file)
@@ -1215,11 +1215,12 @@ krb5_db_fetch_mkey(krb5_context context, krb5_principal mname,
             krb5_db_entry *master_entry;
 
             rc = krb5_db_get_principal(context, mname, 0, &master_entry);
-            if (rc == 0) {
+            if (rc == 0 && master_entry->n_key_data > 0)
                 *kvno = (krb5_kvno) master_entry->key_data->key_data_kvno;
-                krb5_db_free_principal(context, master_entry);
-            } else
+            else
                 *kvno = 1;
+            if (rc == 0)
+                krb5_db_free_principal(context, master_entry);
         }
 
         if (!salt)