mirror of
https://github.com/isc-projects/bind9.git
synced 2026-04-29 18:09:11 -04:00
Handle the errors from sysconf() call in isc_meminfo_totalphys()
isc_meminfo_totalphys() would return invalid memory size when sysconf() call would fail, because ((size_t)-1 * -1) is very large number.
This commit is contained in:
parent
08dd2838a6
commit
79ca724d46
1 changed files with 8 additions and 1 deletions
|
|
@ -35,7 +35,14 @@ isc_meminfo_totalphys(void) {
|
|||
#endif /* if defined(CTL_HW) && (defined(HW_PHYSMEM64) || defined(HW_MEMSIZE)) \
|
||||
* */
|
||||
#if defined(_SC_PHYS_PAGES) && defined(_SC_PAGESIZE)
|
||||
return ((size_t)(sysconf(_SC_PHYS_PAGES) * sysconf(_SC_PAGESIZE)));
|
||||
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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue