From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 0E3C31FF146 for ; Tue, 26 May 2026 16:06:52 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id BB1861709; Tue, 26 May 2026 16:06:51 +0200 (CEST) From: Dominik Csapak To: pdm-devel@lists.proxmox.com Subject: [PATCH datacenter-manager] ui: auto-installer: correctly validate numeric counters in form Date: Tue, 26 May 2026 16:06:42 +0200 Message-ID: <20260526140647.3594593-1-d.csapak@proxmox.com> X-Mailer: git-send-email 2.47.3 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.050 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 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: A5DJY2UTN2MGZH7DF5GNYB37J3GLY464 X-Message-ID-Hash: A5DJY2UTN2MGZH7DF5GNYB37J3GLY464 X-MailFrom: d.csapak@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 Datacenter Manager development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: field values are usually strings, so when a user entered any number here, it would display: invalid value: "1" since only numbers were expected here. To fix this, simply parse strings into numbers. Signed-off-by: Dominik Csapak --- ui/src/remotes/auto_installer/prepared_answer_form.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ui/src/remotes/auto_installer/prepared_answer_form.rs b/ui/src/remotes/auto_installer/prepared_answer_form.rs index d932efe7..b5c59626 100644 --- a/ui/src/remotes/auto_installer/prepared_answer_form.rs +++ b/ui/src/remotes/auto_installer/prepared_answer_form.rs @@ -1040,7 +1040,12 @@ fn kv_list_to_template_counter_map_validate(v: &Vec<(String, Value)>) -> Result< let mut map = BTreeMap::::new(); for (k, v) in v { if TEMPLATE_COUNTER_NAME_REGEX.is_match(k) { - match v.as_i64().and_then(|v| v.try_into().ok()) { + let value = match v { + Value::Number(number) => number.as_i64(), + Value::String(text) => text.parse().ok(), + _ => None, + }; + match value.and_then(|v| v.try_into().ok()) { Some(v) => { map.insert(k.clone(), v); } -- 2.47.3