]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Regression tests for keyless principals
authorBen Kaduk <kaduk@mit.edu>
Fri, 21 Nov 2014 19:00:20 +0000 (14:00 -0500)
committerBen Kaduk <kaduk@mit.edu>
Mon, 15 Dec 2014 20:03:16 +0000 (15:03 -0500)
Confirm that kadmind does not crash when creating/modifying a principal
to have no keys, and confirm that no keys are present after a
purgekeys -all.

src/tests/t_kdb.py

index 937292643c0decf73c5a146c529d9cb4b532bd40..a0bc096dac2c69ee0ce9fdb697190e75e4121f30 100644 (file)
@@ -329,6 +329,23 @@ out = realm.run_kadminl('getprinc kvnoprinc')
 if 'Number of keys: 6' not in out:
     fail('After cpw -keepold, wrong number of keys')
 
+# Regression test for #8041 (NULL dereference on keyless principals).
+out = realm.run_kadminl('addprinc -nokey keylessprinc')
+if 'Principal "keylessprinc@KRBTEST.COM" created' not in out:
+    fail('Failed to create keyless principal')
+out = realm.run_kadminl('getprinc keylessprinc')
+if 'Number of keys: 0' not in out:
+    fail('Failed to create a principal with no keys')
+realm.run_kadminl('cpw -randkey -e aes256-cts,aes128-cts keylessprinc')
+realm.run_kadminl('cpw -randkey -keepold -e aes256-cts,aes128-cts keylessprinc')
+out = realm.run_kadminl('getprinc keylessprinc')
+if 'Number of keys: 4' not in out:
+    fail('Failed to add keys to keylessprinc')
+realm.run_kadminl('purgekeys -all keylessprinc')
+out = realm.run_kadminl('getprinc keylessprinc')
+if 'Number of keys: 0' not in out:
+    fail('After purgekeys -all, keys remain')
+
 realm.stop()
 
 # Briefly test dump and load.