diff --git a/src/OpenFOAM/primitives/ints/int32/int32IO.C b/src/OpenFOAM/primitives/ints/int32/int32IO.C index 209e9ae0d12c2108918877e6fbb79f361f6451e8..0b18d97028f75c91350fde91e71865cbbc69d17f 100644 --- a/src/OpenFOAM/primitives/ints/int32/int32IO.C +++ b/src/OpenFOAM/primitives/ints/int32/int32IO.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2014-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -29,6 +29,7 @@ License #include "IOstreams.H" #include <sstream> +#include <cerrno> // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -85,9 +86,10 @@ int32_t Foam::readInt32(Istream& is) bool Foam::read(const char* buf, int32_t& s) { char *endptr = NULL; + errno = 0; long l = strtol(buf, &endptr, 10); s = int32_t(l); - return (*endptr == 0); + return (*endptr == 0) && (errno == 0); } diff --git a/src/OpenFOAM/primitives/ints/int64/int64IO.C b/src/OpenFOAM/primitives/ints/int64/int64IO.C index 84bd2a045b2919fa001364460c4dfd3c2bf0797c..6cc0b5e0973867758fc1933bb2fe2f604dc1e462 100644 --- a/src/OpenFOAM/primitives/ints/int64/int64IO.C +++ b/src/OpenFOAM/primitives/ints/int64/int64IO.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2014-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -29,6 +29,7 @@ License #include "IOstreams.H" #include <sstream> +#include <cerrno> // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -85,9 +86,10 @@ int64_t Foam::readInt64(Istream& is) bool Foam::read(const char* buf, int64_t& s) { char *endptr = NULL; + errno = 0; long l = strtol(buf, &endptr, 10); s = int64_t(l); - return (*endptr == 0); + return (*endptr == 0) && (errno == 0); }