From: Reinhard Pfau Date: Tue, 23 Jan 2018 09:09:14 +0000 (+0100) Subject: eap: Reset errno before calling strtoul() to parse EAP type X-Git-Tag: 5.6.2dr4~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a8e940ade2b6ec93cf195494a4657204a8b3203b;p=thirdparty%2Fstrongswan.git 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. --- diff --git a/src/libstrongswan/eap/eap.c b/src/libstrongswan/eap/eap.c index 64b5dbe51d..2b7295e3db 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) {