check that valid enctypes are not 0, cid#29

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@24118 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Love Hörnquist Åstrand
2008-12-11 05:02:43 +00:00
parent 6dd6406d82
commit c96c9b0ced

View File

@@ -4690,6 +4690,7 @@ krb5_keytype_to_enctypes (krb5_context context,
krb5_keytype keytype,
unsigned *len,
krb5_enctype **val)
__attribute__((deprecated))
{
int i;
unsigned n = 0;
@@ -4697,18 +4698,26 @@ krb5_keytype_to_enctypes (krb5_context context,
for (i = num_etypes - 1; i >= 0; --i) {
if (etypes[i]->keytype->type == keytype
&& !(etypes[i]->flags & F_PSEUDO))
&& !(etypes[i]->flags & F_PSEUDO)
&& krb5_enctype_valid(context, etypes[i]->type) == 0)
++n;
}
if (n == 0) {
krb5_set_error_message(context, KRB5_PROG_KEYTYPE_NOSUPP,
"Keytype have no mapping");
return KRB5_PROG_KEYTYPE_NOSUPP;
}
ret = malloc(n * sizeof(*ret));
if (ret == NULL && n != 0) {
krb5_set_error_message(context, ENOMEM, N_("malloc: out of memory", ""));
krb5_set_error_message(context, ENOMEM, "malloc: out of memory");
return ENOMEM;
}
n = 0;
for (i = num_etypes - 1; i >= 0; --i) {
if (etypes[i]->keytype->type == keytype
&& !(etypes[i]->flags & F_PSEUDO))
&& !(etypes[i]->flags & F_PSEUDO)
&& krb5_enctype_valid(context, etypes[i]->type) == 0)
ret[n++] = etypes[i]->type;
}
*len = n;