k5-int.h, gic_opt.c
authorJeffrey Altman <jaltman@secure-endpoints.com>
Wed, 2 May 2007 01:31:50 +0000 (01:31 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Wed, 2 May 2007 01:31:50 +0000 (01:31 +0000)
commitc1c4cf131c792c9a40213c38ae785426df430445
tree88a3354da84197e56b00d91148347a53fb21c65c
parent49f4a6eb0d473ea6cc866bb8f7f17d2911aadcbb
  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
tags: pullup

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