Two problems in kadm5_get_principal mask handling
authorGreg Hudson <ghudson@mit.edu>
Wed, 24 Feb 2010 18:57:08 +0000 (18:57 +0000)
committerGreg Hudson <ghudson@mit.edu>
Wed, 24 Feb 2010 18:57:08 +0000 (18:57 +0000)
KADM5_MOD_NAME was being applied to entry->principal instead of
entry->mod_name.  KADM5_MKVNO was not being applied to entry->mkvno.
Patch from Marcus Watts <mdw@umich.edu>.

ticket: 6668
target_version: 1.8
tags: pullup

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@23749 dc483132-0cff-0310-8789-dd5450dbe970

src/lib/kadm5/srv/svr_principal.c

index 3cb3b6b51a00bb8d8a325cf2a1f0a0cec0b0b0f3..469a8e885ab92873e6cd03309355e8439e4edb6e 100644 (file)
@@ -858,8 +858,8 @@ kadm5_get_principal(void *server_handle, krb5_principal principal,
         if (! (mask & KADM5_MOD_TIME))
             entry->mod_date = 0;
         if (! (mask & KADM5_MOD_NAME)) {
-            krb5_free_principal(handle->context, entry->principal);
-            entry->principal = NULL;
+            krb5_free_principal(handle->context, entry->mod_name);
+            entry->mod_name = NULL;
         }
     }
 
@@ -871,10 +871,12 @@ kadm5_get_principal(void *server_handle, krb5_principal principal,
             if (kdb.key_data[i].key_data_kvno > entry->kvno)
                 entry->kvno = kdb.key_data[i].key_data_kvno;
 
-    ret = krb5_dbe_get_mkvno(handle->context, &kdb, master_keylist,
-                             &entry->mkvno);
-    if (ret)
-        goto done;
+    if (mask & KADM5_MKVNO) {
+        ret = krb5_dbe_get_mkvno(handle->context, &kdb, master_keylist,
+                                 &entry->mkvno);
+        if (ret)
+            goto done;
+    }
 
     if (mask & KADM5_MAX_RLIFE)
         entry->max_renewable_life = kdb.max_renewable_life;