diff --git a/src/system/libroot/posix/glibc/stdlib/strtod.c b/src/system/libroot/posix/glibc/stdlib/strtod.c index b5d82692ab..e7c5ca52dd 100644 --- a/src/system/libroot/posix/glibc/stdlib/strtod.c +++ b/src/system/libroot/posix/glibc/stdlib/strtod.c @@ -494,6 +494,12 @@ INTERNAL (STRTOF) (nptr, endptr, group LOCALE_PARAM) struct locale_data *current = loc->__locales[LC_NUMERIC]; #endif + if (nptr == NULL) + { + __set_errno (EINVAL); + return NAN; + } + if (group) { grouping = _NL_CURRENT (LC_NUMERIC, GROUPING); diff --git a/src/system/libroot/posix/glibc/stdlib/strtol.c b/src/system/libroot/posix/glibc/stdlib/strtol.c index eb8602f637..c4da0073a0 100644 --- a/src/system/libroot/posix/glibc/stdlib/strtol.c +++ b/src/system/libroot/posix/glibc/stdlib/strtol.c @@ -288,7 +288,7 @@ INTERNAL (strtol) (nptr, endptr, base, group LOCALE_PARAM) grouping = NULL; #endif - if (base < 0 || base == 1 || base > 36) + if (base < 0 || base == 1 || base > 36 || nptr == NULL) { __set_errno (EINVAL); return 0;