From 6f8d1729544cbbe9fa172c73fd1bcf98a4e2daf8 Mon Sep 17 00:00:00 2001
From: Szymon Bigos <szymon.bigos@tieto.com>
Date: Fri, 2 Dec 2011 10:20:10 +0100
Subject: [PATCH] Fix for wrong pin generating.
Sometimes was generated pin with less then 8
digits, but zeros weren't added at the begining of string.
---
src/ap/wps_hostapd.c | 2 +-
wpa_supplicant/ap.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
@@ -1350,7 +1350,7 @@ const char * hostapd_wps_ap_pin_random(struct hostapd_data *hapd, int timeout)
struct wps_ap_pin_data data;
pin = wps_generate_pin();
- os_snprintf(data.pin_txt, sizeof(data.pin_txt), "%u", pin);
+ os_snprintf(data.pin_txt, sizeof(data.pin_txt), "%08u", pin);
data.timeout = timeout;
hostapd_wps_for_each(hapd, wps_ap_pin_set, &data);
return hapd->conf->ap_pin;
@@ -711,7 +711,7 @@ int wpa_supplicant_ap_wps_pin(struct wpa_supplicant *wpa_s, const u8 *bssid,
if (pin == NULL) {
unsigned int rpin = wps_generate_pin();
- ret_len = os_snprintf(buf, buflen, "%d", rpin);
+ ret_len = os_snprintf(buf, buflen, "%08d", rpin);
pin = buf;
} else
ret_len = os_snprintf(buf, buflen, "%s", pin);
@@ -772,7 +772,7 @@ const char * wpas_wps_ap_pin_random(struct wpa_supplicant *wpa_s, int timeout)
return NULL;
hapd = wpa_s->ap_iface->bss[0];
pin = wps_generate_pin();
- os_snprintf(pin_txt, sizeof(pin_txt), "%u", pin);
+ os_snprintf(pin_txt, sizeof(pin_txt), "%08u", pin);
os_free(hapd->conf->ap_pin);
hapd->conf->ap_pin = os_strdup(pin_txt);
if (hapd->conf->ap_pin == NULL)
--
1.7.0.4