Show a patch.

GET /api/patches/22645/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 22645,
    "url": "https://patchwork.libcamera.org/api/patches/22645/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/22645/",
    "project": {
        "id": 1,
        "url": "https://patchwork.libcamera.org/api/projects/1/?format=api",
        "name": "libcamera",
        "link_name": "libcamera",
        "list_id": "libcamera_core",
        "list_email": "libcamera-devel@lists.libcamera.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": ""
    },
    "msgid": "<20250124215806.158024-7-mzamazal@redhat.com>",
    "date": "2025-01-24T21:57:57",
    "name": "[RFC,v2,06/13] libcamera: simple: Protect against null maxPipeConfig",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": false,
    "hash": "f66f2f2060538b8884e7ed23d7f2d5b581084a37",
    "submitter": {
        "id": 177,
        "url": "https://patchwork.libcamera.org/api/people/177/?format=api",
        "name": "Milan Zamazal",
        "email": "mzamazal@redhat.com"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/22645/mbox/",
    "series": [
        {
            "id": 4970,
            "url": "https://patchwork.libcamera.org/api/series/4970/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=4970",
            "date": "2025-01-24T21:57:51",
            "name": "Enable raw streams with software ISP",
            "version": 2,
            "mbox": "https://patchwork.libcamera.org/series/4970/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/22645/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/22645/checks/",
    "tags": {},
    "headers": {
        "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\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 0A63BBD78E\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 24 Jan 2025 21:58:49 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 6DA6F6856E;\n\tFri, 24 Jan 2025 22:58:48 +0100 (CET)",
            "from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.129.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 5DA1268557\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 24 Jan 2025 22:58:40 +0100 (CET)",
            "from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com\n\t(ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97])\n\tby relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,\n\tcipher=TLS_AES_256_GCM_SHA384) id us-mta-321-6yxzLxdUPg-0OR-ceXG3Jw-1;\n\tFri, 24 Jan 2025 16:58:37 -0500",
            "from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com\n\t(mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com\n\t[10.30.177.111])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\tkey-exchange X25519 server-signature RSA-PSS (2048 bits)\n\tserver-digest SHA256) (No client certificate requested)\n\tby mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix)\n\twith ESMTPS\n\tid EA03E1801F0E for <libcamera-devel@lists.libcamera.org>;\n\tFri, 24 Jan 2025 21:58:36 +0000 (UTC)",
            "from mzamazal-thinkpadp1gen3.tpbc.com (unknown [10.39.192.49])\n\tby mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix)\n\twith ESMTP id D65CC1800344; Fri, 24 Jan 2025 21:58:35 +0000 (UTC)"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"QrxoAcEP\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1737755919;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tcontent-transfer-encoding:content-transfer-encoding:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=VwI+G1adUdpE+lrmwxXmKBxPrBsN1UpAAMBa7aV5AOY=;\n\tb=QrxoAcEPyKNm5+TbLD6Eore5L8bckBO2ot1BQ6q033lF3zXTgDRJg5V3gN0bAHXT92TsVb\n\ti4R2kKee68CJpoeIgxNllajnUTvmKJMu+PCNo7b/NLq3/RWh8s/d3GqWrh847T79TrzTp5\n\tmITQyiUax6vb7ieqAokRYsDdJEfxrf0=",
        "X-MC-Unique": "6yxzLxdUPg-0OR-ceXG3Jw-1",
        "X-Mimecast-MFC-AGG-ID": "6yxzLxdUPg-0OR-ceXG3Jw",
        "From": "Milan Zamazal <mzamazal@redhat.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Cc": "Milan Zamazal <mzamazal@redhat.com>",
        "Subject": "[RFC PATCH v2 06/13] libcamera: simple: Protect against null\n\tmaxPipeConfig",
        "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-Transfer-Encoding": "8bit",
        "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": "<libcamera-devel.lists.libcamera.org>",
        "List-Unsubscribe": "<https://lists.libcamera.org/options/libcamera-devel>,\n\t<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>,\n\t<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>"
    },
    "content": "SimpleCameraData::pipeConfig_ is set to the determined maxPipeConfig if\nno better configuration is found.  In the current code, maxPipeConfig\nshould be always set.  But it may be easy to miss that requirement and\nend up with null maxPipeConfig on contingent code changes.\n\nLet's add a check for nullptr to prevent segmentation fault surprises.\nIt doesn't harm.\n\nSigned-off-by: Milan Zamazal <mzamazal@redhat.com>\n---\n src/libcamera/pipeline/simple/simple.cpp | 7 ++++++-\n 1 file changed, 6 insertions(+), 1 deletion(-)",
    "diff": "diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp\nindex e6bbff5d..300ebbc0 100644\n--- a/src/libcamera/pipeline/simple/simple.cpp\n+++ b/src/libcamera/pipeline/simple/simple.cpp\n@@ -1078,8 +1078,13 @@ CameraConfiguration::Status SimpleCameraConfiguration::validate()\n \t}\n \n \t/* If no configuration was large enough, select the largest one. */\n-\tif (!pipeConfig_)\n+\tif (!pipeConfig_) {\n+\t\tif (!maxPipeConfig) {\n+\t\t\tLOG(SimplePipeline, Error) << \"No valid configuration found\";\n+\t\t\treturn Invalid;\n+\t\t}\n \t\tpipeConfig_ = maxPipeConfig;\n+\t}\n \n \tLOG(SimplePipeline, Debug)\n \t\t<< \"Picked \"\n",
    "prefixes": [
        "RFC",
        "v2",
        "06/13"
    ]
}