]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Fix minor leaks in klist
authorGreg Hudson <ghudson@mit.edu>
Mon, 15 Jul 2013 15:14:24 +0000 (11:14 -0400)
committerGreg Hudson <ghudson@mit.edu>
Mon, 15 Jul 2013 15:14:24 +0000 (11:14 -0400)
When walking the cache, if we skip a cred because it's a config entry,
make sure to free it.  Also free the result of krb5_cc_get_principal.
Based on a patch from Nalin Dahyabhai.

src/clients/klist/klist.c

index 6c040673c11667df9adb3094c20cf2319359f656..745a460854766a23f24e7d87e9fee5e8fa9c1658 100644 (file)
@@ -520,9 +520,9 @@ do_ccache(krb5_ccache cache)
         return 1;
     }
     while (!(code = krb5_cc_next_cred(kcontext, cache, &cur, &creds))) {
-        if (!show_config && krb5_is_config_principal(kcontext, creds.server))
-            continue;
-        if (status_only) {
+        if (!show_config && krb5_is_config_principal(kcontext, creds.server)) {
+            /* Do nothing with this entry. */
+        } else if (status_only) {
             if (exit_status && creds.server->length == 2 &&
                 data_eq(creds.server->realm, princ->realm) &&
                 data_eq_string(creds.server->data[0], "krbtgt") &&
@@ -556,6 +556,7 @@ do_ccache(krb5_ccache cache)
             com_err(progname, code, _("while retrieving a ticket"));
         return 1;
     }
+    krb5_free_principal(kcontext, princ);
 }
 
 char *