Lines Matching refs:pos
287 static const u8 * nai_realm_parse_eap(struct nai_realm_eap *e, const u8 *pos,
293 if (pos + 3 > end) {
298 elen = *pos++;
299 if (pos + elen > end || elen < 2) {
303 e_end = pos + elen;
304 e->method = *pos++;
305 auth_count = *pos++;
312 if (pos + 2 > end || pos + 2 + pos[1] > end) {
318 id = *pos++;
319 len = *pos++;
325 e->inner_non_eap = *pos;
328 switch (*pos) {
346 e->inner_method = *pos;
353 e->cred_type = *pos;
360 e->tunneled_cred_type = *pos;
368 "Value", pos, len);
372 pos += len;
379 static const u8 * nai_realm_parse_realm(struct nai_realm *r, const u8 *pos,
386 if (end - pos < 4) {
392 len = WPA_GET_LE16(pos); /* NAI Realm Data field Length */
393 pos += 2;
394 if (pos + len > end || len < 3) {
397 len, (unsigned int) (end - pos));
400 f_end = pos + len;
402 r->encoding = *pos++;
403 realm_len = *pos++;
404 if (pos + realm_len > f_end) {
407 realm_len, (unsigned int) (f_end - pos));
410 wpa_hexdump_ascii(MSG_DEBUG, "NAI Realm", pos, realm_len);
411 r->realm = dup_binstr(pos, realm_len);
414 pos += realm_len;
416 if (pos + 1 > f_end) {
420 r->eap_count = *pos++;
422 if (pos + r->eap_count * 3 > f_end) {
431 pos = nai_realm_parse_eap(&r->eap[e], pos, f_end);
432 if (pos == NULL)
443 const u8 *pos, *end;
449 pos = wpabuf_head_u8(anqp);
450 end = pos + wpabuf_len(anqp);
451 num = WPA_GET_LE16(pos);
453 pos += 2;
455 if (num * 5 > end - pos) {
458 num, (unsigned int) (end - pos));
467 pos = nai_realm_parse_realm(&realm[i], pos, end);
468 if (pos == NULL) {
481 char *tmp, *pos, *end;
494 pos = tmp;
495 while (*pos) {
496 end = os_strchr(pos, ';');
499 if (os_strcasecmp(pos, home_realm) == 0) {
505 pos = end + 1;
603 const u8 *pos, *end;
628 pos = wpabuf_head_u8(anqp);
629 end = pos + wpabuf_len(anqp);
630 if (pos + 2 > end)
632 if (*pos != 0) {
633 wpa_printf(MSG_DEBUG, "Unsupported GUD version 0x%x", *pos);
636 pos++;
637 udhl = *pos++;
638 if (pos + udhl > end) {
642 end = pos + udhl;
648 while (pos + 2 <= end) {
651 iei = *pos++;
652 len = *pos++ & 0x7f;
653 if (pos + len > end)
655 l_end = pos + len;
661 pos, len);
662 num = *pos++;
664 if (pos + 3 > l_end)
666 if (os_memcmp(pos, plmn, 3) == 0 ||
667 os_memcmp(pos, plmn2, 3) == 0)
669 pos += 3;
673 pos, len);
676 pos = l_end;
687 char *end, *pos;
714 pos = nai;
717 *pos++ = prefix;
718 os_memcpy(pos, imsi, plmn_len);
719 pos += plmn_len;
720 os_memcpy(pos, msin, msin_len);
721 pos += msin_len;
722 pos += os_snprintf(pos, end - pos, "@wlan.mnc");
724 *pos++ = '0';
725 *pos++ = imsi[3];
726 *pos++ = imsi[4];
728 *pos++ = imsi[3];
729 *pos++ = imsi[4];
730 *pos++ = imsi[5];
732 pos += os_snprintf(pos, end - pos, ".mcc%c%c%c.3gppnetwork.org",
874 const u8 *pos, *end;
880 pos = ie + 2;
889 if (pos + 2 > end)
892 pos++; /* skip Number of ANQP OIs */
893 lens = *pos++;
894 if (pos + (lens & 0x0f) + (lens >> 4) > end)
897 if ((lens & 0x0f) == rc_len && os_memcmp(pos, rc_id, rc_len) == 0)
899 pos += lens & 0x0f;
901 if ((lens >> 4) == rc_len && os_memcmp(pos, rc_id, rc_len) == 0)
903 pos += lens >> 4;
905 if (pos < end && (size_t) (end - pos) == rc_len &&
906 os_memcmp(pos, rc_id, rc_len) == 0)
916 const u8 *pos, *end;
922 pos = wpabuf_head(anqp);
923 end = pos + wpabuf_len(anqp);
926 while (pos < end) {
927 len = *pos++;
928 if (pos + len > end)
930 if (len == rc_len && os_memcmp(pos, rc_id, rc_len) == 0)
932 pos += len;
1023 const char *pos;
1026 pos = os_strchr(cred->username, '@');
1027 if (pos) {
1028 size_t buflen = 9 + os_strlen(pos) + 1;
1032 os_snprintf(anon, buflen, "anonymous%s", pos);
1489 const u8 *pos, *end;
1493 pos = wpabuf_head(domain_names);
1494 end = pos + wpabuf_len(domain_names);
1496 while (pos + 1 < end) {
1497 if (pos + 1 + pos[0] > end)
1501 pos + 1, pos[0]);
1502 if (pos[0] == len &&
1503 os_strncasecmp(domain, (const char *) (pos + 1), len) == 0)
1506 pos += 1 + pos[0];
1851 const u8 *pos = data;
1868 wpa_hexdump_ascii(MSG_DEBUG, "ANQP: Venue Name", pos, slen);
1871 anqp->venue_name = wpabuf_alloc_copy(pos, slen);
1879 "Type", pos, slen);
1882 anqp->network_auth_type = wpabuf_alloc_copy(pos, slen);
1889 pos, slen);
1892 anqp->roaming_consortium = wpabuf_alloc_copy(pos, slen);
1900 pos, slen);
1904 wpabuf_alloc_copy(pos, slen);
1910 wpa_hexdump_ascii(MSG_DEBUG, "ANQP: NAI Realm", pos, slen);
1913 anqp->nai_realm = wpabuf_alloc_copy(pos, slen);
1920 pos, slen);
1923 anqp->anqp_3gpp = wpabuf_alloc_copy(pos, slen);
1929 wpa_hexdump_ascii(MSG_MSGDUMP, "ANQP: Domain Name", pos, slen);
1932 anqp->domain_name = wpabuf_alloc_copy(pos, slen);
1939 switch (WPA_GET_BE24(pos)) {
1942 pos += 3;
1947 type = *pos++;
1952 hs20_parse_rx_hs20_anqp_resp(wpa_s, sa, pos,
1965 WPA_GET_BE24(pos));
1983 const u8 *pos;
1992 pos = wpabuf_head(adv_proto);
1993 if (wpabuf_len(adv_proto) < 4 || pos[0] != WLAN_EID_ADV_PROTO ||
1994 pospos[3] != ACCESS_NETWORK_QUERY_PROTOCOL) {
2015 pos = wpabuf_head(resp);
2016 end = pos + wpabuf_len(resp);
2018 while (pos < end) {
2019 if (pos + 4 > end) {
2023 info_id = WPA_GET_LE16(pos);
2024 pos += 2;
2025 slen = WPA_GET_LE16(pos);
2026 pos += 2;
2027 if (pos + slen > end) {
2032 interworking_parse_rx_anqp_resp(wpa_s, bss, dst, info_id, pos,
2034 pos += slen;