From 36da4da465b82995f1881d747035107166f32c15 Mon Sep 17 00:00:00 2001 From: "Thomas A." Date: Thu, 28 Mar 2024 22:03:34 -0700 Subject: [PATCH] If Count Exceeds MAX_SCHED_CPUS, Set Count To MAX_SCHED_CPUS Fixes out of bounds issues when running Darling on a device/virutal machine that reports more then 64 cores. Fixes #7 Co-Authored-By: Janrupf --- duct-tape/src/processor.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/duct-tape/src/processor.c b/duct-tape/src/processor.c index bf087f5..76fdd4f 100644 --- a/duct-tape/src/processor.c +++ b/duct-tape/src/processor.c @@ -31,7 +31,13 @@ void dtape_processor_init(void) { simple_lock_init(&processor_list_lock, 0); processor_count = get_nprocs_conf(); + if (processor_count > MAX_SCHED_CPUS) + processor_count = MAX_SCHED_CPUS; + processor_avail_count = get_nprocs(); + if (processor_avail_count > MAX_SCHED_CPUS) + processor_avail_count = MAX_SCHED_CPUS; + processor_avail_count_user = processor_avail_count; primary_processor_avail_count = processor_avail_count; primary_processor_avail_count_user = processor_avail_count;