diff options
author | Tom Yu <tlyu@mit.edu> | 2006-06-26 22:04:51 +0000 |
---|---|---|
committer | Tom Yu <tlyu@mit.edu> | 2006-06-26 22:04:51 +0000 |
commit | ffb07736ff6149278cce1a5ab3714a98a04591b3 (patch) | |
tree | dd2e3745e2fbd6e4e138dc6f34ecd708834ef908 /src/lib/krb5/krb/init_ctx.c | |
parent | a6d786ccf9d1b6dbfe2b86ee0d3dfc5c3951d37c (diff) | |
download | krb5-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.c | 16 |
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) |