From a8e940ade2b6ec93cf195494a4657204a8b3203b Mon Sep 17 00:00:00 2001 From: Reinhard Pfau Date: Tue, 23 Jan 2018 10:09:14 +0100 Subject: [PATCH] eap: Reset errno before calling strtoul() to parse EAP type Reset errno to 0 before calling strtoul() since it sets errno only on error cases. So the following test fails even on correct conversions if errno had a value != 0. Fixes #2506. --- src/libstrongswan/eap/eap.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/libstrongswan/eap/eap.c b/src/libstrongswan/eap/eap.c index 64b5dbe51..2b7295e3d 100644 --- a/src/libstrongswan/eap/eap.c +++ b/src/libstrongswan/eap/eap.c @@ -157,6 +157,7 @@ eap_vendor_type_t *eap_vendor_type_from_string(char *str) type = eap_type_from_string(part); if (!type) { + errno = 0; type = strtoul(part, &end, 0); if (*end != '\0' || errno) { @@ -166,6 +167,7 @@ eap_vendor_type_t *eap_vendor_type_from_string(char *str) } continue; } + errno = 0; vendor = strtoul(part, &end, 0); if (*end != '\0' || errno) {