From patchwork Fri Jan 24 21:57:57 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Milan Zamazal X-Patchwork-Id: 22645 Return-Path: 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 0A63BBD78E for ; Fri, 24 Jan 2025 21:58:49 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 6DA6F6856E; Fri, 24 Jan 2025 22:58:48 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.b="QrxoAcEP"; dkim-atps=neutral Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 5DA1268557 for ; Fri, 24 Jan 2025 22:58:40 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1737755919; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=VwI+G1adUdpE+lrmwxXmKBxPrBsN1UpAAMBa7aV5AOY=; b=QrxoAcEPyKNm5+TbLD6Eore5L8bckBO2ot1BQ6q033lF3zXTgDRJg5V3gN0bAHXT92TsVb i4R2kKee68CJpoeIgxNllajnUTvmKJMu+PCNo7b/NLq3/RWh8s/d3GqWrh847T79TrzTp5 mITQyiUax6vb7ieqAokRYsDdJEfxrf0= Received: from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-321-6yxzLxdUPg-0OR-ceXG3Jw-1; Fri, 24 Jan 2025 16:58:37 -0500 X-MC-Unique: 6yxzLxdUPg-0OR-ceXG3Jw-1 X-Mimecast-MFC-AGG-ID: 6yxzLxdUPg-0OR-ceXG3Jw Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id EA03E1801F0E for ; Fri, 24 Jan 2025 21:58:36 +0000 (UTC) Received: from mzamazal-thinkpadp1gen3.tpbc.com (unknown [10.39.192.49]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id D65CC1800344; Fri, 24 Jan 2025 21:58:35 +0000 (UTC) From: Milan Zamazal To: libcamera-devel@lists.libcamera.org Cc: Milan Zamazal Subject: [RFC PATCH v2 06/13] libcamera: simple: Protect against null maxPipeConfig Date: Fri, 24 Jan 2025 22:57:57 +0100 Message-ID: <20250124215806.158024-7-mzamazal@redhat.com> In-Reply-To: <20250124215806.158024-1-mzamazal@redhat.com> References: <20250124215806.158024-1-mzamazal@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: ylXTJo2kWLstyYMBgWHRV_lAnBR6d7JS6TnycWUh15k_1737755917 X-Mimecast-Originator: redhat.com content-type: text/plain; charset="US-ASCII"; x-default=true X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" SimpleCameraData::pipeConfig_ is set to the determined maxPipeConfig if no better configuration is found. In the current code, maxPipeConfig should be always set. But it may be easy to miss that requirement and end up with null maxPipeConfig on contingent code changes. Let's add a check for nullptr to prevent segmentation fault surprises. It doesn't harm. Signed-off-by: Milan Zamazal --- src/libcamera/pipeline/simple/simple.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp index e6bbff5d..300ebbc0 100644 --- a/src/libcamera/pipeline/simple/simple.cpp +++ b/src/libcamera/pipeline/simple/simple.cpp @@ -1078,8 +1078,13 @@ CameraConfiguration::Status SimpleCameraConfiguration::validate() } /* If no configuration was large enough, select the largest one. */ - if (!pipeConfig_) + if (!pipeConfig_) { + if (!maxPipeConfig) { + LOG(SimplePipeline, Error) << "No valid configuration found"; + return Invalid; + } pipeConfig_ = maxPipeConfig; + } LOG(SimplePipeline, Debug) << "Picked "