HS 2.0: Fix Terms and Conditions Server URL macro replacement

The last character of the STA MAC address got replaced with 0x00 due to
truncation if the @1@ macro was used at the end of the URL. Fix this
case by allocating larger buffer for the URL.

Fixes: d4e39c51f8 ("HS 2.0: Move Terms and Conditions Server URL generation from AP to AS")
Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
This commit is contained in:
Jouni Malinen 2018-07-31 00:07:36 +03:00 committed by Jouni Malinen
parent 420b5dd814
commit 5ca1196577

View file

@ -950,7 +950,7 @@ radius_server_encapsulate_eap(struct radius_server_data *data,
}
url_len = os_strlen(url) + ETH_ALEN * 3 - 1 - 3;
url2 = os_malloc(url_len);
url2 = os_malloc(url_len + 1);
if (!url2) {
RADIUS_DEBUG("Failed to allocate room for T&C Server URL");
os_free(url2);
@ -958,7 +958,7 @@ radius_server_encapsulate_eap(struct radius_server_data *data,
return NULL;
}
pos2 = url2;
end2 = url2 + url_len;
end2 = url2 + url_len + 1;
os_memcpy(pos2, url, pos - url);
pos2 += pos - url;
os_snprintf(pos2, end2 - pos2, MACSTR, MAC2STR(sess->mac_addr));