diff --git a/lib/isc/unix/meminfo.c b/lib/isc/unix/meminfo.c index 634528b23d..1620aa428c 100644 --- a/lib/isc/unix/meminfo.c +++ b/lib/isc/unix/meminfo.c @@ -34,7 +34,14 @@ isc_meminfo_totalphys(void) { return (size); #endif #if defined(_SC_PHYS_PAGES) && defined(_SC_PAGESIZE) - return ((size_t) (sysconf(_SC_PHYS_PAGES) * sysconf(_SC_PAGESIZE))); -#endif + long pages = sysconf(_SC_PHYS_PAGES); + long pagesize = sysconf(_SC_PAGESIZE); + + if (pages == -1 || pagesize == -1) { + return (0); + } + + return ((size_t)pages * pagesize); +#endif /* if defined(_SC_PHYS_PAGES) && defined(_SC_PAGESIZE) */ return (0); }