From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 4D5311FF14E for ; Sun, 29 Mar 2026 04:56:32 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 6151A9A4F; Sun, 29 Mar 2026 04:56:55 +0200 (CEST) From: Kefu Chai To: pve-devel@lists.proxmox.com Subject: [PATCH manager] ceph: cfg: fix config key filter returning all section keys Date: Sun, 29 Mar 2026 10:56:15 +0800 Message-ID: <20260329025615.1837601-1-k.chai@proxmox.com> X-Mailer: git-send-email 2.47.3 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1774752928532 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.356 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: COES76VDKIPPWOE5OTPVRDVCWRDSCR3L X-Message-ID-Hash: COES76VDKIPPWOE5OTPVRDVCWRDSCR3L X-MailFrom: k.chai@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: The configdb loop fetching specific keys from 'config dump' contained a tautology: $config->{$n_section}->{$n_name} = $value if defined $requested_keys->{$n_section} && $n_name eq $n_name; The condition '$n_name eq $n_name' is always true, so the second clause never actually filters by requested key. As a result, ALL keys from any section that appeared in the request were returned to the caller instead of only the specifically requested ones. Compare with the correct pattern used just below in the ceph.conf path: $config->{$n_section}->{$n_key} = $config_file->{$section}->{$key} if $requested_keys->{$n_section}->{$n_key}; Fix: replace the tautological two-part condition with the same single hash-dereference form. This is falsy when the section is absent and falsy when the specific key is not requested, correctly filtering the configdb output to only the keys the caller asked for. Symptom: calling the '/ceph/cfg/value' API with a specific key like 'global:auth_cluster_required' would return every key in the [global] section from the Ceph config database instead of only that one key. Signed-off-by: Kefu Chai --- PVE/API2/Ceph/Cfg.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PVE/API2/Ceph/Cfg.pm b/PVE/API2/Ceph/Cfg.pm index 9d16caf2..8798f12a 100644 --- a/PVE/API2/Ceph/Cfg.pm +++ b/PVE/API2/Ceph/Cfg.pm @@ -174,7 +174,7 @@ __PACKAGE__->register_method({ my $n_name = $normalize->($name); $config->{$n_section}->{$n_name} = $value - if defined $requested_keys->{$n_section} && $n_name eq $n_name; + if $requested_keys->{$n_section}->{$n_name}; } # read ceph.conf after config db as it has priority if settings are present in both -- 2.47.3