From ea0b890cbfb4a1a1b767516c935395190b546911 Mon Sep 17 00:00:00 2001 From: Andrew Yourtchenko Date: Thu, 15 Sep 2022 11:56:50 +0000 Subject: 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 Change-Id: I8cae6a35ec2f745c37f1fe6557e5fa66720b4628 --- src/vppinfra/linux/mem.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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 */ -- cgit 1.2.3-korg