| Message ID | 20260708-libipa-algorithms-v5-11-0759d0359f52@ideasonboard.com |
|---|---|
| State | New |
| Headers | show
Return-Path: <libcamera-devel-bounces@lists.libcamera.org> X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 5637FC3261 for <parsemail@patchwork.libcamera.org>; Wed, 8 Jul 2026 15:51:35 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id A4BCB660EA; Wed, 8 Jul 2026 17:51:34 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="gyQ7Kcl1"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 630BE660A5 for <libcamera-devel@lists.libcamera.org>; Wed, 8 Jul 2026 17:51:15 +0200 (CEST) Received: from [192.168.1.182] (93-46-82-201.ip106.fastwebnet.it [93.46.82.201]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 93A3F1D27; Wed, 8 Jul 2026 17:50:25 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1783525825; bh=rFLCmzTAiGZxfdqplp4EQ86F28eJB4eSKIzc7E7rlXE=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=gyQ7Kcl12DQqEYXYB5UgERb/Z2TwDFWmTUOz3KFL8UgrFKwNN7ZAUHovyQFvBdgn3 cqwfna3s0/tqXMVclhmadnwsgFvoPONFJ+rXhwRA6AIRFtVhzDiCRlZQOcY0Q42Ld8 sCBA7+NeVA/hRQ/UCoMGrZzw20UmjgyTldaagT9Q= From: Jacopo Mondi <jacopo.mondi@ideasonboard.com> Date: Wed, 08 Jul 2026 17:50:53 +0200 Subject: [PATCH v5 11/36] ipa: libipa: lsc_polynomial: Fix polynomial parsing error MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260708-libipa-algorithms-v5-11-0759d0359f52@ideasonboard.com> References: <20260708-libipa-algorithms-v5-0-0759d0359f52@ideasonboard.com> In-Reply-To: <20260708-libipa-algorithms-v5-0-0759d0359f52@ideasonboard.com> To: libcamera-devel@lists.libcamera.org, Stefan Klug <stefan.klug@ideasonboard.com> Cc: Jacopo Mondi <jacopo.mondi@ideasonboard.com> X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1278; i=jacopo.mondi@ideasonboard.com; h=from:subject:message-id; bh=rFLCmzTAiGZxfdqplp4EQ86F28eJB4eSKIzc7E7rlXE=; b=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBqTnHj2cTRs9HXA/ikX2koXWd8sDF3uvSLiZCXy 2OClU0f4COJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCak5x4wAKCRByNAaPFqFW POm5D/9wNVfbCcJWHsJRlvWEOqaEtXVyL22s9BYbzZGDmnisxmP5evQ5SsaaT9IWHU2HgSxxxXE EYPXjBHgrEkTtx2K1ckzbca3+V3PqOtzudAr4BJKOaUUD4jd92p/1jVRu7zroPDWyTYFScg/BAO 6TE8ltBFQnla5rPjjomJSJIqYjVOHNxqYs0dX4K4eRKFUi28m2ZpOYaVgfmP7znQLoBGAUYgpM/ aHPeJlm0JTO3ISpnl0ZwU+MlH47ZRNB5AEFRRT/Agpi61D1H2GLoEIFu+2OqbCm/DScNGdILm0i wxK7NJiOs02MaQMMpxtMnIdBmJ9xa3MtlJ9hyvJtFtPUA4S4MIPQeDfhGqyVkVZa8xzgjIALzr2 UUxaR9e6DWi327IY2/IPjkFHUrmvSkI+4Fpw39dwEJgaNQi/wekTcOssf9tLyT2h0bZxcg5wq2I rP2wwfPbbmn9nEFBJFTDFF8OTT7yH16+J0qcWOJ9k2sPMZFSfL4Vyq5PY8U+Z9PfVGLzx9ZlroE 35qjnVyDmoGaR6RuvznENDUp/EZxhkPEzngh7r9A7Y8RbtvN2LhUjoiJVvGZqNfRN8JBF+mGwsD SVk9SsDmKE6Z0XgzRCy33PNvacEN7QwyqNSbn0K5Iiv0GNsX9+taPJS4ddX5LIj7TRm2EONw3iq rCgIgrWKZnws8Vg== X-Developer-Key: i=jacopo.mondi@ideasonboard.com; a=openpgp; fpr=72392EDC88144A65C701EA9BA5826A2587AD026B X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: <libcamera-devel.lists.libcamera.org> List-Unsubscribe: <https://lists.libcamera.org/options/libcamera-devel>, <mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe> List-Archive: <https://lists.libcamera.org/pipermail/libcamera-devel/> List-Post: <mailto:libcamera-devel@lists.libcamera.org> List-Help: <mailto:libcamera-devel-request@lists.libcamera.org?subject=help> List-Subscribe: <https://lists.libcamera.org/listinfo/libcamera-devel>, <mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe> Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" <libcamera-devel-bounces@lists.libcamera.org> |
| Series |
|
| Related |
show
|
diff --git a/src/ipa/libipa/lsc_polynomial.h b/src/ipa/libipa/lsc_polynomial.h index d7d9ae42e360..a0d27c4b21d6 100644 --- a/src/ipa/libipa/lsc_polynomial.h +++ b/src/ipa/libipa/lsc_polynomial.h @@ -94,9 +94,11 @@ struct ValueNode::Accessor<ipa::LscPolynomial> { std::optional<double> k3 = obj["k3"].get<double>(); std::optional<double> k4 = obj["k4"].get<double>(); - if (!(cx && cy && k0 && k1 && k2 && k3 && k4)) + if (!(cx && cy && k0 && k1 && k2 && k3 && k4)) { LOG(LscPolynomial, Error) << "Polynomial is missing a parameter"; + return std::nullopt; + } return ipa::LscPolynomial(*cx, *cy, *k0, *k1, *k2, *k3, *k4); }
If any of the polynomial component is missing in the tuning file the ValueNode::Accessor<ipa::LscPolynomial> specialization emits an error message but continues and dereferences a potentially invalid object. Fix it by returning std::nullopt if a polynomial component is missing. The caller already checks if the returned value is valid or not, causing the algorithm initialization to fail if the tuning file is invalid. Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> --- src/ipa/libipa/lsc_polynomial.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)