vlib: fix ASAN fake stack size set error when switching to process 89/37789/2
authorXiaoming Jiang <jiangxiaoming@outlook.com>
Sat, 10 Dec 2022 03:44:16 +0000 (03:44 +0000)
committerDamjan Marion <dmarion@0xa5.net>
Mon, 6 Mar 2023 17:02:57 +0000 (17:02 +0000)
Type: fix
Signed-off-by: Xiaoming Jiang <jiangxiaoming@outlook.com>
Change-Id: I2add6cb8dba837e47596983ec8303883aba3a138

src/vlib/node_funcs.h

index 115127f..a75f1f3 100644 (file)
@@ -59,7 +59,8 @@ vlib_process_start_switch_stack (vlib_main_t * vm, vlib_process_t * p)
 {
 #ifdef CLIB_SANITIZE_ADDR
   void *stack = p ? (void *) p->stack : vlib_thread_stacks[vm->thread_index];
-  u32 stack_bytes = p ? p->log2_n_stack_bytes : VLIB_THREAD_STACK_SIZE;
+  u32 stack_bytes =
+    p ? (1ULL < p->log2_n_stack_bytes) : VLIB_THREAD_STACK_SIZE;
   __sanitizer_start_switch_fiber (&vm->asan_stack_save, stack, stack_bytes);
 #endif
 }