WPS ER: Fix UDN parser to handle missing field
Must check that UDN was present before trying to parse it. Avoid a NULL pointer dereference by checking the result before using os_strstr() when parsing device description from an AP. Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
0bbaa9b93f
commit
d75a5ae018
1 changed files with 9 additions and 6 deletions
|
@ -579,12 +579,15 @@ static void wps_er_parse_device_description(struct wps_er_ap *ap,
|
||||||
wpa_printf(MSG_DEBUG, "WPS ER: serialNumber='%s'", ap->serial_number);
|
wpa_printf(MSG_DEBUG, "WPS ER: serialNumber='%s'", ap->serial_number);
|
||||||
|
|
||||||
ap->udn = xml_get_first_item(data, "UDN");
|
ap->udn = xml_get_first_item(data, "UDN");
|
||||||
|
if (ap->udn) {
|
||||||
wpa_printf(MSG_DEBUG, "WPS ER: UDN='%s'", ap->udn);
|
wpa_printf(MSG_DEBUG, "WPS ER: UDN='%s'", ap->udn);
|
||||||
pos = os_strstr(ap->udn, "uuid:");
|
pos = os_strstr(ap->udn, "uuid:");
|
||||||
if (pos) {
|
if (pos) {
|
||||||
pos += 5;
|
pos += 5;
|
||||||
if (uuid_str2bin(pos, ap->uuid) < 0)
|
if (uuid_str2bin(pos, ap->uuid) < 0)
|
||||||
wpa_printf(MSG_DEBUG, "WPS ER: Invalid UUID in UDN");
|
wpa_printf(MSG_DEBUG,
|
||||||
|
"WPS ER: Invalid UUID in UDN");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ap->upc = xml_get_first_item(data, "UPC");
|
ap->upc = xml_get_first_item(data, "UPC");
|
||||||
|
|
Loading…
Reference in a new issue