aboutsummaryrefslogtreecommitdiff
path: root/src/include/k5-int.h
diff options
context:
space:
mode:
authorJeffrey Altman <jaltman@secure-endpoints.com>2007-05-02 01:31:50 +0000
committerJeffrey Altman <jaltman@secure-endpoints.com>2007-05-02 01:31:50 +0000
commitc1c4cf131c792c9a40213c38ae785426df430445 (patch)
tree88a3354da84197e56b00d91148347a53fb21c65c /src/include/k5-int.h
parent49f4a6eb0d473ea6cc866bb8f7f17d2911aadcbb (diff)
downloadkrb5-c1c4cf131c792c9a40213c38ae785426df430445.zip
krb5-c1c4cf131c792c9a40213c38ae785426df430445.tar.gz
krb5-c1c4cf131c792c9a40213c38ae785426df430445.tar.bz2
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
Diffstat (limited to 'src/include/k5-int.h')
-rw-r--r--src/include/k5-int.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/include/k5-int.h b/src/include/k5-int.h
index 99b1579..98f1064 100644
--- a/src/include/k5-int.h
+++ b/src/include/k5-int.h
@@ -1048,9 +1048,9 @@ void krb5_free_etype_info
#define KRB5_GET_INIT_CREDS_OPT_SHADOWED 0x40000000
#define krb5_gic_opt_is_extended(s) \
- (((s)->flags & KRB5_GET_INIT_CREDS_OPT_EXTENDED) ? 1 : 0)
+ ((s) && ((s)->flags & KRB5_GET_INIT_CREDS_OPT_EXTENDED) ? 1 : 0)
#define krb5_gic_opt_is_shadowed(s) \
- (((s)->flags & KRB5_GET_INIT_CREDS_OPT_SHADOWED) ? 1 : 0)
+ ((s) && ((s)->flags & KRB5_GET_INIT_CREDS_OPT_SHADOWED) ? 1 : 0)
typedef struct _krb5_gic_opt_private {