From 626c0568e79af8ebbc5ec102b2b2af570a1cc4a4 Mon Sep 17 00:00:00 2001 From: Minh Vu Date: Wed, 17 Jun 2026 00:07:23 +0200 Subject: [PATCH 1/2] Reject negative process grid dimensions Signed-off-by: Minh Vu --- src/cudecomp.cc | 4 +++- tests/ctest/api_tests.cc | 10 ++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/cudecomp.cc b/src/cudecomp.cc index 1da8bf8..9f3f3c6 100644 --- a/src/cudecomp.cc +++ b/src/cudecomp.cc @@ -240,7 +240,9 @@ static void checkConfig(cudecompHandle_t handle, const cudecompGridDescConfig_t* if (!autotune_halos) { checkHaloCommBackend(config->halo_comm_backend); } checkRankOrder(config->rank_order); - int pdims_prod = config->pdims[0] * config->pdims[1]; + if (config->pdims[0] < 0 || config->pdims[1] < 0) { THROW_INVALID_USAGE("pdims values are invalid"); } + + int64_t pdims_prod = static_cast(config->pdims[0]) * config->pdims[1]; if (pdims_prod == 0) { if (config->pdims[0] != 0 || config->pdims[1] != 0) { THROW_INVALID_USAGE("pdims values are invalid"); } } else if (pdims_prod != handle->nranks) { diff --git a/tests/ctest/api_tests.cc b/tests/ctest/api_tests.cc index 3f04e8d..fef6f95 100644 --- a/tests/ctest/api_tests.cc +++ b/tests/ctest/api_tests.cc @@ -863,6 +863,16 @@ TEST_F(ApiGridDescCreateTest, RejectsInvalidConfigs) { config.pdims[1] = 1; expectGridDescCreateInvalid(config); + config = distributedConfig(); + config.pdims[0] = -2; + config.pdims[1] = -2; + expectGridDescCreateInvalid(config); + + config = distributedConfig(); + config.pdims[0] = -4; + config.pdims[1] = -1; + expectGridDescCreateInvalid(config); + config = distributedConfig(); config.rank_order = static_cast(999); expectGridDescCreateInvalid(config); From 22cdb919e2d2a0c0ecda272284d8a23ad20105db Mon Sep 17 00:00:00 2001 From: Josh Romero Date: Tue, 23 Jun 2026 10:03:50 -0700 Subject: [PATCH 2/2] Remove redundant test. Signed-off-by: Josh Romero --- tests/ctest/api_tests.cc | 5 ----- 1 file changed, 5 deletions(-) diff --git a/tests/ctest/api_tests.cc b/tests/ctest/api_tests.cc index fef6f95..32cae83 100644 --- a/tests/ctest/api_tests.cc +++ b/tests/ctest/api_tests.cc @@ -868,11 +868,6 @@ TEST_F(ApiGridDescCreateTest, RejectsInvalidConfigs) { config.pdims[1] = -2; expectGridDescCreateInvalid(config); - config = distributedConfig(); - config.pdims[0] = -4; - config.pdims[1] = -1; - expectGridDescCreateInvalid(config); - config = distributedConfig(); config.rank_order = static_cast(999); expectGridDescCreateInvalid(config);