From patchwork Fri Oct 1 16:11:00 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Javier Martinez Canillas X-Patchwork-Id: 14023 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 8DFC2BDC71 for ; Fri, 1 Oct 2021 16:11:55 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id E756A691AA; Fri, 1 Oct 2021 18:11:54 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.b="V6gCh1ZL"; dkim-atps=neutral Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id B9BFB691A6 for ; Fri, 1 Oct 2021 18:11:52 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1633104711; 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=tj5sUBYDfX3+O1p+bYWOYtIHbUEPbnnKj4O1RM+2HTw=; b=V6gCh1ZLjVNcrw1PTaCD89yi75yazrqEVQAVYE3in3Ww8/hMuFEwDzH5ssqWZkl/5AlbIA NP5twsqL7rkIbavBeabj8rGKxrWqUNPKVA8en1dnhjqVPGqkFqNtwxVDTI6BuN+LvLwYOQ kaiEfLGuCubjCro0lQEGPjurWO6fYHg= Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-222-x8j_VlM1MSyUlzed_pZhqA-1; Fri, 01 Oct 2021 12:11:50 -0400 X-MC-Unique: x8j_VlM1MSyUlzed_pZhqA-1 Received: by mail-wr1-f69.google.com with SMTP id n18-20020adff092000000b001609d9081d4so35322wro.18 for ; Fri, 01 Oct 2021 09:11:50 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=tj5sUBYDfX3+O1p+bYWOYtIHbUEPbnnKj4O1RM+2HTw=; b=4iBACdQG5Am+HY89XloSeJPIvyb+ZctFghCeE2zzPIKoAzjsMLeX/iD1UwHBrceOrC wUlsNfUhYqOMV4yQqjAERZJq5toj6hXJKe/t6sdiLWCYwMgTsIo6PkF/Oa9KYM8ryeHF 3Hwn2IDDfHFu59aNDqGwNk/9a4seW9SOmPRzyIhrQLl4x/MV44e8sHdxAR9KEdblun/6 aljIJaPi6ArljoOBRwfNEXZeRExpnRFpPde7OGRjgqUJ8TjDjEHLPp6FENAY/JfVNrqU fNDGomwBdYwwwFKTX6OXRDv/IXQ1ItC39reQgdDXFxMHXQd0xooXUdkpTsb+WhvboBKE WAjQ== X-Gm-Message-State: AOAM530lcpDWYhM3KKYqfi0f186o8KzLAyUiWju7U4d+8QgiMRG4xQS/ UK/YaaoWN5VbWZ+fX3ofIYgXjAVEA188R6U/cGA/jruknE3ux+9sohgYtcFwPYhQIADzN+CKMPu YKmNJvEXNudxN4UXOX5x0RJxxUbH/mwvtmfUJbfkk5WQRWs3cIivv2xuHO5UH/b5fZIBF1cWNIC cBGQ81DEtn X-Received: by 2002:a1c:8088:: with SMTP id b130mr5473176wmd.36.1633104709052; Fri, 01 Oct 2021 09:11:49 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxQQzL1Xs0JXW4Xx/NSk20DEAcyq2jds+Q/NJ43f1psx8VQOOZjRjfzyiTBcOIi90ylXbRNYg== X-Received: by 2002:a1c:8088:: with SMTP id b130mr5473132wmd.36.1633104708669; Fri, 01 Oct 2021 09:11:48 -0700 (PDT) Received: from minerva.redhat.com ([92.176.231.106]) by smtp.gmail.com with ESMTPSA id d3sm7138164wrb.36.2021.10.01.09.11.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 01 Oct 2021 09:11:48 -0700 (PDT) From: Javier Martinez Canillas To: libcamera-devel@lists.libcamera.org Date: Fri, 1 Oct 2021 18:11:00 +0200 Message-Id: <20211001161100.1405576-2-javierm@redhat.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211001161100.1405576-1-javierm@redhat.com> References: <20211001161100.1405576-1-javierm@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=javierm@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Subject: [libcamera-devel] [PATCH 2/2] android: Check if Stream configurations were generated correctly 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" The libcamera Android Camera HAL generates camera configurations for the StillCapture, Raw and ViewFinder stream roles. But it's only checked for the first one if the function succeeded. This could lead to a NULL pointer deference if a pipeline handler failed to generate a default configuration for one the other two stream roles. Signed-off-by: Javier Martinez Canillas Reviewed-by: Jacopo Mondi Reviewed-by: Laurent Pinchart --- src/android/camera_capabilities.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/android/camera_capabilities.cpp b/src/android/camera_capabilities.cpp index 87a6e1c6f26..baeedc11500 100644 --- a/src/android/camera_capabilities.cpp +++ b/src/android/camera_capabilities.cpp @@ -408,6 +408,11 @@ CameraCapabilities::initializeYUVResolutions(const PixelFormat &pixelFormat, std::vector supportedResolutions; std::unique_ptr cameraConfig = camera_->generateConfiguration({ StreamRole::Viewfinder }); + if (!cameraConfig) { + LOG(HAL, Error) << "Failed to get supported YUV resolutions"; + return supportedResolutions; + } + StreamConfiguration &cfg = cameraConfig->at(0); for (const Size &res : resolutions) { @@ -431,11 +436,17 @@ CameraCapabilities::initializeYUVResolutions(const PixelFormat &pixelFormat, std::vector CameraCapabilities::initializeRawResolutions(const PixelFormat &pixelFormat) { + std::vector supportedResolutions; std::unique_ptr cameraConfig = camera_->generateConfiguration({ StreamRole::Raw }); + if (!cameraConfig) { + LOG(HAL, Error) << "Failed to get supported Raw resolutions"; + return supportedResolutions; + } + StreamConfiguration &cfg = cameraConfig->at(0); const StreamFormats &formats = cfg.formats(); - std::vector supportedResolutions = formats.sizes(pixelFormat); + supportedResolutions = formats.sizes(pixelFormat); return supportedResolutions; }