diff options
author | Masashi Honma <honma@ictec.co.jp> | 2009-08-26 23:34:54 +0300 |
---|---|---|
committer | Jouni Malinen <j@w1.fi> | 2009-08-26 23:34:54 +0300 |
commit | fe23eb56963f98418c86b3e26a8bd0c79b5c49b2 (patch) | |
tree | 5623c43871ac879fbb301552ca99a9580b848f64 /src | |
parent | 3a57305f10ce867d4427ecb94efbec6afb982068 (diff) | |
download | external_wpa_supplicant_8_ti-fe23eb56963f98418c86b3e26a8bd0c79b5c49b2.zip external_wpa_supplicant_8_ti-fe23eb56963f98418c86b3e26a8bd0c79b5c49b2.tar.gz external_wpa_supplicant_8_ti-fe23eb56963f98418c86b3e26a8bd0c79b5c49b2.tar.bz2 |
WPS: Aggregate deinit calls in WPS OOB
In WPS OOB, deinit_func() is called from 3 locations.
This patch aggregates these to one.
Diffstat (limited to 'src')
-rw-r--r-- | src/wps/wps_common.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/src/wps/wps_common.c b/src/wps/wps_common.c index 65b7d99..7cc63e1 100644 --- a/src/wps/wps_common.c +++ b/src/wps/wps_common.c @@ -496,25 +496,23 @@ int wps_process_oob(struct wps_context *wps, struct oob_device_data *oob_dev, ret = -1; } else { data = oob_dev->read_func(oob_priv); - if (data == NULL) { - oob_dev->deinit_func(oob_priv); - return -1; + if (data == NULL) + ret = -1; + else { + if (oob_method == OOB_METHOD_CRED) + ret = wps_parse_oob_cred(wps, data); + else + ret = wps_parse_oob_dev_pwd(wps, data); } - - if (oob_method == OOB_METHOD_CRED) - ret = wps_parse_oob_cred(wps, data); - else - ret = wps_parse_oob_dev_pwd(wps, data); } wpabuf_free(data); + oob_dev->deinit_func(oob_priv); + if (ret < 0) { wpa_printf(MSG_ERROR, "WPS: Failed to process OOB data"); - oob_dev->deinit_func(oob_priv); return -1; } - oob_dev->deinit_func(oob_priv); - return 0; } |