remove heuristic error detection from ddi_strto*()

Zero, <TYPE>_MIN and <TYPE>_MAX values can result from valid conversions.
They don't necessarily imply any error.
Since we do not have any reliable error signaling from libkern's strto*(),
it's better to always assume success rather than to report an error when
there is none.

Reviewed by:	tsoome
MFC after:	2 weeks
Differential Revision: https://reviews.freebsd.org/D12565
This commit is contained in:
Andriy Gapon 2017-10-05 12:25:18 +00:00
parent 8fc26d9612
commit a4bc304da5

View file

@ -41,10 +41,6 @@ ddi_strtol(const char *str, char **nptr, int base, long *result)
{
*result = strtol(str, nptr, base);
if (*result == 0)
return (EINVAL);
else if (*result == LONG_MIN || *result == LONG_MAX)
return (ERANGE);
return (0);
}
@ -58,10 +54,6 @@ ddi_strtoul(const char *str, char **nptr, int base, unsigned long *result)
}
*result = strtoul(str, nptr, base);
if (*result == 0)
return (EINVAL);
else if (*result == ULONG_MAX)
return (ERANGE);
return (0);
}
@ -70,10 +62,6 @@ ddi_strtoull(const char *str, char **nptr, int base, unsigned long long *result)
{
*result = (unsigned long long)strtouq(str, nptr, base);
if (*result == 0)
return (EINVAL);
else if (*result == ULLONG_MAX)
return (ERANGE);
return (0);
}