pull up r24020 from trunk
authorTom Yu <tlyu@mit.edu>
Wed, 19 May 2010 18:52:49 +0000 (18:52 +0000)
committerTom Yu <tlyu@mit.edu>
Wed, 19 May 2010 18:52:49 +0000 (18:52 +0000)
 ------------------------------------------------------------------------
 r24020 | ghudson | 2010-05-13 14:49:20 -0400 (Thu, 13 May 2010) | 8 lines

 ticket: 6722
 subject: Error handling bug in krb5_init_creds_init()
 tags: pullup
 target_version: 1.8.2

 Fix a bug in krb5_init_creds_init() where a freed context could be
 returned to the caller in certain error cases.

ticket: 6722
version_fixed: 1.8.2
status: resolved

git-svn-id: svn://anonsvn.mit.edu/krb5/branches/krb5-1-8@24062 dc483132-0cff-0310-8789-dd5450dbe970

src/lib/krb5/krb/get_in_tkt.c

index b1b837d06cd5f9eabdcd783b08fdf15cc6d7c8b4..41059af710ff81f54b664279ff35b75febf250db 100644 (file)
@@ -1489,14 +1489,15 @@ krb5_init_creds_init(krb5_context context,
         krb5_princ_type(context, ctx->request->client) = KRB5_NT_WELLKNOWN;
     }
     code = restart_init_creds_loop(context, ctx, NULL);
+    if (code)
+        goto cleanup;
 
     *pctx = ctx;
+    ctx = NULL;
 
 cleanup:
-    if (code != 0)
-        krb5_init_creds_free(context, ctx);
-    if (str != NULL)
-        free(str);
+    krb5_init_creds_free(context, ctx);
+    free(str);
 
     return code;
 }