svn rev #25388: branches/krb5-1-10/src/lib/krb5/ccache/

tlyu@MIT.EDU tlyu at MIT.EDU
Thu Oct 20 15:27:43 EDT 2011


http://src.mit.edu/fisheye/changelog/krb5/?cs=25388
Commit By: tlyu
Log Message:
ticket: 6987
version_fixed: 1.10
status: resolved

pull up r25384 from trunk

 ------------------------------------------------------------------------
 r25384 | ghudson | 2011-10-19 23:45:12 -0400 (Wed, 19 Oct 2011) | 12 lines

 ticket: 6987
 subject: Fix krb5_cc_set_config
 target_version: 1.10
 tags: pullup

 krb5_cc_set_config has been non-functional since r24753 on cache types
 which don't support removal of credential entries.  Fix it by only
 calling krb5_cc_remove_cred if data is NULL, since krb5_cc_store_cred
 will do it anyway in the positive case.

 Also fix an old memory leak in an uncommon error case.


Changed Files:
U   branches/krb5-1-10/src/lib/krb5/ccache/ccfns.c
Modified: branches/krb5-1-10/src/lib/krb5/ccache/ccfns.c
===================================================================
--- branches/krb5-1-10/src/lib/krb5/ccache/ccfns.c	2011-10-20 19:27:38 UTC (rev 25387)
+++ branches/krb5-1-10/src/lib/krb5/ccache/ccfns.c	2011-10-20 19:27:43 UTC (rev 25388)
@@ -281,16 +281,14 @@
     if (ret)
         goto out;
 
-    /* Remove old configuration */
-    ret = krb5_cc_remove_cred(context, id, 0, &cred);
-    if (ret && ret != KRB5_CC_NOTFOUND)
-        goto out;
-
-    if (data) {
+    if (data == NULL) {
+        ret = krb5_cc_remove_cred(context, id, 0, &cred);
+    } else {
         cred.ticket.data = malloc(data->length);
         if (cred.ticket.data == NULL) {
-            krb5_set_error_message(context, ENOMEM, "malloc: out of memory");
-            return ENOMEM;
+            ret = ENOMEM;
+            krb5_set_error_message(context, ret, "malloc: out of memory");
+            goto out;
         }
         cred.ticket.length = data->length;
         memcpy(cred.ticket.data, data->data, data->length);




More information about the cvs-krb5 mailing list