]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Catch case where User-Name may be > 250 octets
authorAlan T. DeKok <aland@freeradius.org>
Wed, 19 Oct 2011 15:26:36 +0000 (17:26 +0200)
committerAlan T. DeKok <aland@freeradius.org>
Wed, 19 Oct 2011 15:26:36 +0000 (17:26 +0200)
src/modules/rlm_eap/types/rlm_eap_peap/peap.c

index 0ddf1ed73619ba43113156cf64352717e89f0f14..59cb7edac85d206c30f478d6a32c7d0e7fc012d9 100644 (file)
@@ -933,7 +933,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);