* src/lib/krb5_32.def: Export krb5_copy_context
authorTom Yu <tlyu@mit.edu>
Mon, 26 Jun 2006 22:04:51 +0000 (22:04 +0000)
committerTom Yu <tlyu@mit.edu>
Mon, 26 Jun 2006 22:04:51 +0000 (22:04 +0000)
* src/lib/krb5/libkrb5.exports: Export krb5_copy_context.

* src/lib/krb5/krb/init_ctx.c (krb5_copy_context): Fix malloc
argument for nctx.  Handle null default_ccname case.

ticket: 2856

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

src/lib/krb5/krb/init_ctx.c
src/lib/krb5/libkrb5.exports
src/lib/krb5_32.def

index 85a3d144a00428b8486fb32345fbda8bb28d1e8b..8e4ce8c3b3a4fbc041a3c252bd2f4232bc46ec48 100644 (file)
@@ -516,7 +516,10 @@ krb5_copy_context(krb5_context ctx, krb5_context *nctx_out)
     if (ctx == NULL)
        return EINVAL;          /* XXX */
 
-    nctx = malloc(sizeof(krb5_context*));
+    nctx = malloc(sizeof(*nctx));
+    if (nctx == NULL)
+       return ENOMEM;
+
     *nctx = *ctx;
 
     nctx->in_tkt_ktypes = NULL;
@@ -549,10 +552,13 @@ krb5_copy_context(krb5_context ctx, krb5_context *nctx_out)
        goto errout;
     nctx->tgs_ktype_count = ctx->tgs_ktype_count;
 
-    nctx->os_context->default_ccname = strdup(ctx->os_context->default_ccname);
-    if (nctx->os_context->default_ccname == NULL) {
-       ret = ENOMEM;
-       goto errout;
+    if (ctx->os_context->default_ccname != NULL) {
+       nctx->os_context->default_ccname =
+           strdup(ctx->os_context->default_ccname);
+       if (nctx->os_context->default_ccname == NULL) {
+           ret = ENOMEM;
+           goto errout;
+       }
     }
     ret = krb5_get_profile(ctx, &nctx->profile);
     if (ret)
index b2fd14e575478641634bcdc46c1764d2312fed2b..94e94e45dbb9f9292eeadfe52b71931daebefd24 100644 (file)
@@ -323,6 +323,7 @@ krb5_copy_addresses
 krb5_copy_authdata
 krb5_copy_authenticator
 krb5_copy_checksum
+krb5_copy_context
 krb5_copy_creds
 krb5_copy_data
 krb5_copy_keyblock
index db0be8c617fa7e050b9061451b614cde39cbbd68..9785df56300e730c7a815ffbc4ff5e926e6b4da1 100644 (file)
@@ -100,6 +100,7 @@ krb5_c_string_to_key_with_params
        krb5_copy_authdata
        krb5_copy_authenticator
        krb5_copy_checksum
+       krb5_copy_context
        krb5_copy_creds
        krb5_copy_data
        krb5_copy_keyblock