sizeof(mechbuf),
&init_token.mechTypes.val[i],
&mech_len);
- if (ret)
+ if (ret) {
+ free_NegTokenInit(&init_token);
return (GSS_S_DEFECTIVE_TOKEN);
+ }
if (mech_len == GSS_KRB5_MECH->length &&
memcmp(GSS_KRB5_MECH->elements,
mechbuf + sizeof(mechbuf) - mech_len,
}
}
- if (!found)
+ if (!found) {
+ free_NegTokenInit(&init_token);
return (send_reject(minor_status, output_token));
+ }
if (i == 0 && init_token.mechToken != NULL) {
ibuf.length = init_token.mechToken->length;
time_rec,
delegated_cred_handle);
if (GSS_ERROR(major_status)) {
+ free_NegTokenInit(&init_token);
send_reject(&minor_status2, output_token);
return (major_status);
}
ot = &obuf;
}
ret = send_accept(&minor_status2, output_token, ot, pref);
+ free_NegTokenInit(&init_token);
if (ot != NULL && ot->length != 0U)
gss_release_buffer(&minor_status2, ot);
int n;
size_t oldlen = len;
+ data->components = NULL;
+ data->length = 0;
if (len < 1U)
return (ASN1_OVERRUN);
ret = decode_NegTokenResp(buf + taglen, len, &resp, NULL);
if (ret) {
+ free_NegTokenResp(&resp);
*minor_status = ENOMEM;
return (GSS_S_FAILURE);
}