From: Jouni Malinen Date: Fri, 29 Nov 2013 10:46:41 +0000 (+0200) Subject: WPS NFC: Validate ctrl_iface response before decoding it X-Git-Tag: hostap_2_1~35 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=79ede5a7e6625cbe3321a13ee46bc58113a6db7f;p=thirdparty%2Fhostap.git WPS NFC: Validate ctrl_iface response before decoding it If the operation fails for any reason ("FAIL" response), it is cleaner to return error clearly instead of hitting an exception in the hex decoder. Signed-hostap: Jouni Malinen --- diff --git a/wpa_supplicant/examples/wps-nfc.py b/wpa_supplicant/examples/wps-nfc.py index e1d59e96a..ea00497cd 100755 --- a/wpa_supplicant/examples/wps-nfc.py +++ b/wpa_supplicant/examples/wps-nfc.py @@ -75,7 +75,10 @@ def wpas_get_er_config_token(uuid): wpas = wpas_connect() if (wpas == None): return None - return wpas.request("WPS_ER_NFC_CONFIG_TOKEN NDEF " + uuid).rstrip().decode("hex") + ret = wpas.request("WPS_ER_NFC_CONFIG_TOKEN NDEF " + uuid) + if "FAIL" in ret: + return None + return ret.rstrip().decode("hex") def wpas_get_password_token(): @@ -97,8 +100,12 @@ def wpas_get_handover_sel(uuid): if (wpas == None): return None if uuid is None: - return wpas.request("NFC_GET_HANDOVER_SEL NDEF WPS-CR").rstrip().decode("hex") - return wpas.request("NFC_GET_HANDOVER_SEL NDEF WPS-CR " + uuid).rstrip().decode("hex") + res = wpas.request("NFC_GET_HANDOVER_SEL NDEF WPS-CR").rstrip() + else: + res = wpas.request("NFC_GET_HANDOVER_SEL NDEF WPS-CR " + uuid).rstrip() + if "FAIL" in res: + return None + return res.decode("hex") def wpas_report_handover(req, sel, type):