From: Alexandra Ellwood Date: Mon, 7 Jul 2008 19:08:01 +0000 (+0000) Subject: krb5int_gic_opte_copy should copy elements individually X-Git-Tag: krb5-1.7-alpha1~613 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=0db712774d2408d534db6763c66cd3a970794ca2;p=krb5.git krb5int_gic_opte_copy should copy elements individually Since we are copying from one structure to another, copy elements. Using memcpy is fragile. ticket: new status: open git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@20499 dc483132-0cff-0310-8789-dd5450dbe970 --- diff --git a/src/lib/krb5/krb/gic_opt.c b/src/lib/krb5/krb/gic_opt.c index ab73d2c8e..1ba1877bf 100644 --- a/src/lib/krb5/krb/gic_opt.c +++ b/src/lib/krb5/krb/gic_opt.c @@ -216,8 +216,19 @@ krb5int_gic_opte_copy(krb5_context context, if (NULL == oe) return ENOMEM; - if (opt) - memcpy(oe, opt, sizeof(*opt)); + if (opt) { + oe->flags = opt->flags; + oe->tkt_life = opt->tkt_life; + oe->renew_life = opt->renew_life; + oe->forwardable = opt->forwardable; + oe->proxiable = opt->proxiable; + oe->etype_list = opt->etype_list; + oe->etype_list_length = opt->etype_list_length; + oe->address_list = opt->address_list; + oe->preauth_list = opt->preauth_list; + oe->preauth_list_length = opt->preauth_list_length; + oe->salt = opt->salt; + } /* * Fix the flags -- the EXTENDED flag would have been