From c5f7d7abaf6d9cae5a394d096da4e1a374978f0e Mon Sep 17 00:00:00 2001 From: Muhammad Arnaldo Date: Thu, 5 Mar 2026 14:09:26 +0700 Subject: [PATCH] MDL-87438 core: Fix multiselect saving with empty choices --- public/lib/adminlib.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/public/lib/adminlib.php b/public/lib/adminlib.php index c68705c8cf2..4a86a77c351 100644 --- a/public/lib/adminlib.php +++ b/public/lib/adminlib.php @@ -3707,12 +3707,15 @@ class admin_setting_configmultiselect extends admin_setting_configselect { if (!is_array($data)) { return ''; //ignore it } - if (!$this->load_choices() or empty($this->choices)) { - return ''; - } unset($data['xxxxx']); + // Only reject when the caller actually supplied a value + // and there is no valid choices to validate against. + if (!empty($data) && (!$this->load_choices() || empty($this->choices))) { + return ''; + } + $save = array(); foreach ($data as $value) { if (!array_key_exists($value, $this->choices)) {