diff --git a/src/OpenFOAM/primitives/ints/int32/int32IO.C b/src/OpenFOAM/primitives/ints/int32/int32IO.C index 209e9ae0d1..0b18d97028 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 +#include // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -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 84bd2a045b..6cc0b5e097 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 +#include // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -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); }