Reply KRB5KRB_ERR_RESPONSE_TOO_BIG for too large packets when using

datagram based transports.


git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@19163 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Love Hörnquist Åstrand
2006-11-27 14:17:58 +00:00
parent 6ff3e7477d
commit 772ed07a25

View File

@@ -1202,7 +1202,8 @@ tgs_build_reply(krb5_context context,
const char *from,
const char **e_text,
AuthorizationData *auth_data,
const struct sockaddr *from_addr)
const struct sockaddr *from_addr,
int datagram_reply)
{
krb5_error_code ret;
krb5_principal cp = NULL, sp = NULL;
@@ -1683,7 +1684,8 @@ _kdc_tgs_rep(krb5_context context,
KDC_REQ *req,
krb5_data *data,
const char *from,
struct sockaddr *from_addr)
struct sockaddr *from_addr,
int datagram_reply)
{
AuthorizationData *auth_data = NULL;
krb5_error_code ret;
@@ -1740,13 +1742,21 @@ _kdc_tgs_rep(krb5_context context,
from,
&e_text,
auth_data,
from_addr);
from_addr,
datagram_reply);
if (ret) {
kdc_log(context, config, 0,
"Failed building TGS-REP to %s", from);
goto out;
}
/* */
if (datagram_reply && data->length > config->max_datagram_reply_length) {
krb5_data_free(data);
ret = KRB5KRB_ERR_RESPONSE_TOO_BIG;
e_text = "Reply packet too large";
}
out:
if(ret && data->data == NULL){
krb5_mk_error(context,