}
-static int build_root_nai(char *nai, const char *imsi, char prefix)
+static int build_root_nai(char *nai, size_t nai_len, const char *imsi,
+ char prefix)
{
const char *sep, *msin;
char *end, *pos;
msin_len = os_strlen(msin);
pos = nai;
- end = pos + sizeof(nai);
+ end = nai + nai_len;
if (prefix)
*pos++ = prefix;
os_memcpy(pos, imsi, plmn_len);
static int set_root_nai(struct wpa_ssid *ssid, const char *imsi, char prefix)
{
char nai[100];
- if (build_root_nai(nai, imsi, prefix) < 0)
+ if (build_root_nai(nai, sizeof(nai), imsi, prefix) < 0)
return -1;
return wpa_config_set_quoted(ssid, "identity", nai);
}
for (cred = wpa_s->conf->cred; cred; cred = cred->next) {
#ifdef INTERWORKING_3GPP
if (cred->imsi &&
- build_root_nai(nai, cred->imsi, 0) == 0) {
+ build_root_nai(nai, sizeof(nai), cred->imsi, 0) == 0) {
realm = os_strchr(nai, '@');
if (realm)
realm++;