From 40f01e011c735f2aa938e3e1dce373baf9b77a3e Mon Sep 17 00:00:00 2001 From: Johan Danielsson Date: Thu, 24 Jun 2004 11:40:26 +0000 Subject: [PATCH] (_krb5_get_init_creds_opt_copy): if copying a static opt, make sure to allocate the "private" field git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@13985 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/krb5/init_creds.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/krb5/init_creds.c b/lib/krb5/init_creds.c index 4314dc746..3225872f2 100644 --- a/lib/krb5/init_creds.c +++ b/lib/krb5/init_creds.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997 - 2001, 2003 Kungliga Tekniska Högskolan + * Copyright (c) 1997 - 2004 Kungliga Tekniska Högskolan * (Royal Institute of Technology, Stockholm, Sweden). * All rights reserved. * @@ -81,7 +81,16 @@ _krb5_get_init_creds_opt_copy(krb5_context context, return ENOMEM; } *opt = *in; - opt->private->refcount++; + if(opt->private == NULL) { + opt->private = calloc(1, sizeof(*opt->private)); + if (opt->private == NULL) { + krb5_set_error_string(context, "out of memory"); + free(opt); + return ENOMEM; + } + opt->private->refcount = 1; + } else + opt->private->refcount++; *out = opt; return 0; }