pull up r19537 from trunk
authorTom Yu <tlyu@mit.edu>
Wed, 2 May 2007 03:58:39 +0000 (03:58 +0000)
committerTom Yu <tlyu@mit.edu>
Wed, 2 May 2007 03:58:39 +0000 (03:58 +0000)
commit2d9e209c64d1ecc255af79d268d4a64d2aed06a4
tree4d1996b9e98a85bd84b9e8f6df8f30f6a66d6637
parent6c1f1052376e259e296a54d1b2254e409b4073c2
pull up r19537 from trunk

 r19537@cathode-dark-space:  jaltman | 2007-05-01 21:31:50 -0400
 ticket: 5552
 tags: pullup

   k5-int.h, gic_opt.c

   The krb5_get_init_creds_password() and krb5_get_init_creds_keytab()
   functions permit the gic_opts parameter to be NULL.   This is not
   taken into account when testing the value with the macros
   krb5_gic_opt_is_extended() and krb5_gic_opt_is_shadowed().
   Nor is it taken into account within krb5int_gic_opte_copy() which
   is called by krb5int_gic_opt_to_opte() when the input parameter is
   not a krb5_gic_opt_ext structure.

   This commit makes two changes:

   (1) it modifies the macros to ensure that the value is non-NULL
       before evaluation.

   (2) it modifies krb5int_gic_opte_copy() to avoid copying the
       original values with memcpy() when the input is NULL.

   In addition, the code was audited to ensure that the flag
   KRB5_GET_INIT_CREDS_OPT_SHADOWED is properly set and that when
   it is set, that the allocated krb5_gic_opt_ext structure is
   freed by krb5_get_init_creds_password() and
   krb5_get_init_creds_keytab().

ticket: 5552
version_fixed: 1.6.2

git-svn-id: svn://anonsvn.mit.edu/krb5/branches/krb5-1-6@19538 dc483132-0cff-0310-8789-dd5450dbe970
src/include/k5-int.h
src/lib/krb5/krb/gic_opt.c