From: Alan T. DeKok Date: Wed, 19 Oct 2011 15:26:36 +0000 (+0200) Subject: Catch case where User-Name may be > 250 octets X-Git-Tag: release_3_0_0_beta0~562 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=62313f4841da9303582969adf89160e233b01ab4;p=thirdparty%2Ffreeradius-server.git Catch case where User-Name may be > 250 octets --- diff --git a/src/modules/rlm_eap/types/rlm_eap_peap/peap.c b/src/modules/rlm_eap/types/rlm_eap_peap/peap.c index 0d9a03105f4..21b7e7bcdcc 100644 --- a/src/modules/rlm_eap/types/rlm_eap_peap/peap.c +++ b/src/modules/rlm_eap/types/rlm_eap_peap/peap.c @@ -938,7 +938,9 @@ int eappeap_process(EAP_HANDLER *handler, tls_session_t *tls_session) vp->vp_octets[3] = len & 0xff; vp->vp_octets[4] = PW_EAP_IDENTITY; - memcpy(vp->vp_octets + EAP_HEADER_LEN + 1, t->username->vp_strvalue, t->username->length); + if (len > sizeof(vp->vp_octets)) len = sizeof(vp->vp_octets); + memcpy(vp->vp_octets + EAP_HEADER_LEN + 1, + t->username->vp_strvalue, len - EAP_HEADER_LEN - 1); vp->length = len; pairadd(&fake->packet->vps, vp);