}
ret = _krb5_dh_group_ok(context, config->pkinit_dh_min_bits,
- &dhparam.p, &dhparam.g, &dhparam.q, moduli,
+ &dhparam.p, &dhparam.g, dhparam.q, moduli,
&client_params->dh_group_name);
if (ret) {
/* XXX send back proposal of better group */
DomainParameters ::= SEQUENCE {
p INTEGER, -- odd prime, p=jq +1
g INTEGER, -- generator, g
- q INTEGER, -- factor of p-1
+ q INTEGER OPTIONAL, -- factor of p-1
j INTEGER OPTIONAL, -- subgroup factor
validationParms ValidationParms OPTIONAL -- ValidationParms
}
free_DomainParameters(&dp);
return ret;
}
- ret = BN_to_integer(context, dh->q, &dp.q);
+ dp.q = calloc(1, sizeof(*dp.q));
+ if (dp.q == NULL) {
+ free_DomainParameters(&dp);
+ return ENOMEM;
+ }
+ ret = BN_to_integer(context, dh->q, dp.q);
if (ret) {
free_DomainParameters(&dp);
return ret;