diff options
Diffstat (limited to 'crypto/heimdal/lib/krb5/padata.c')
-rw-r--r-- | crypto/heimdal/lib/krb5/padata.c | 31 |
1 files changed, 26 insertions, 5 deletions
diff --git a/crypto/heimdal/lib/krb5/padata.c b/crypto/heimdal/lib/krb5/padata.c index bcf7952..b2b70f5 100644 --- a/crypto/heimdal/lib/krb5/padata.c +++ b/crypto/heimdal/lib/krb5/padata.c @@ -33,13 +33,34 @@ #include "krb5_locl.h" -RCSID("$Id: padata.c,v 1.2 1999/12/02 17:05:11 joda Exp $"); +RCSID("$Id: padata.c 15469 2005-06-17 04:28:35Z lha $"); PA_DATA * -krb5_find_padata(PA_DATA *val, unsigned len, int type, int *index) +krb5_find_padata(PA_DATA *val, unsigned len, int type, int *idx) { - for(; *index < len; (*index)++) - if(val[*index].padata_type == type) - return val + *index; + for(; *idx < len; (*idx)++) + if(val[*idx].padata_type == type) + return val + *idx; return NULL; } + +int KRB5_LIB_FUNCTION +krb5_padata_add(krb5_context context, METHOD_DATA *md, + int type, void *buf, size_t len) +{ + PA_DATA *pa; + + pa = realloc (md->val, (md->len + 1) * sizeof(*md->val)); + if (pa == NULL) { + krb5_set_error_string(context, "malloc: out of memory"); + return ENOMEM; + } + md->val = pa; + + pa[md->len].padata_type = type; + pa[md->len].padata_value.length = len; + pa[md->len].padata_value.data = buf; + md->len++; + + return 0; +} |