From fbbda779932a2ab7a7d7ee22ce9959b915bc2908 Mon Sep 17 00:00:00 2001 From: lxs Date: Mon, 7 Jul 2008 19:08:01 +0000 Subject: [PATCH] ticket: new status: open subject: krb5int_gic_opte_copy should copy elements individually Since we are copying from one structure to another, copy elements. Using memcpy is fragile. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@20499 dc483132-0cff-0310-8789-dd5450dbe970 --- src/lib/krb5/krb/gic_opt.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/lib/krb5/krb/gic_opt.c b/src/lib/krb5/krb/gic_opt.c index ab73d2c8e1..1ba1877bf9 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