diff options
author | Andrew Yourtchenko <ayourtch@gmail.com> | 2022-09-15 11:56:50 +0000 |
---|---|---|
committer | Damjan Marion <dmarion@0xa5.net> | 2022-12-02 13:49:11 +0000 |
commit | ea0b890cbfb4a1a1b767516c935395190b546911 (patch) | |
tree | 3e14b678dd6adff21e143a63b05a098e4ab4c9f4 /src/vppinfra/linux/mem.c | |
parent | 5163d5981068e49cb26616da6163136c9fafd969 (diff) |
vlib: clib_panic if sysconf() can't determine page size on startup
Account for the potential of sysconf() returning -1 if it can not
get the page size and make it a fatal error.
Coverity: 277313
Type: fix
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Change-Id: I8cae6a35ec2f745c37f1fe6557e5fa66720b4628
Diffstat (limited to 'src/vppinfra/linux/mem.c')
-rw-r--r-- | src/vppinfra/linux/mem.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/vppinfra/linux/mem.c b/src/vppinfra/linux/mem.c index ec3328d4a29..69f4363c8ac 100644 --- a/src/vppinfra/linux/mem.c +++ b/src/vppinfra/linux/mem.c @@ -103,6 +103,7 @@ void clib_mem_main_init () { clib_mem_main_t *mm = &clib_mem_main; + long sysconf_page_size; uword page_size; void *va; int fd; @@ -111,7 +112,12 @@ clib_mem_main_init () return; /* system page size */ - page_size = sysconf (_SC_PAGESIZE); + sysconf_page_size = sysconf (_SC_PAGESIZE); + if (sysconf_page_size < 0) + { + clib_panic ("Could not determine the page size"); + } + page_size = sysconf_page_size; mm->log2_page_sz = min_log2 (page_size); /* default system hugeppage size */ |