summaryrefslogtreecommitdiffstats
path: root/src/lib/krb5/krb/init_ctx.c
diff options
context:
space:
mode:
authorTom Yu <tlyu@mit.edu>2006-06-26 22:04:51 +0000
committerTom Yu <tlyu@mit.edu>2006-06-26 22:04:51 +0000
commitffb07736ff6149278cce1a5ab3714a98a04591b3 (patch)
treedd2e3745e2fbd6e4e138dc6f34ecd708834ef908 /src/lib/krb5/krb/init_ctx.c
parenta6d786ccf9d1b6dbfe2b86ee0d3dfc5c3951d37c (diff)
downloadkrb5-ffb07736ff6149278cce1a5ab3714a98a04591b3.tar.gz
krb5-ffb07736ff6149278cce1a5ab3714a98a04591b3.tar.xz
krb5-ffb07736ff6149278cce1a5ab3714a98a04591b3.zip
* src/lib/krb5_32.def: Export krb5_copy_context
* 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
Diffstat (limited to 'src/lib/krb5/krb/init_ctx.c')
-rw-r--r--src/lib/krb5/krb/init_ctx.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/lib/krb5/krb/init_ctx.c b/src/lib/krb5/krb/init_ctx.c
index 85a3d144a0..8e4ce8c3b3 100644
--- a/src/lib/krb5/krb/init_ctx.c
+++ b/src/lib/krb5/krb/init_ctx.c
@@ -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)