[{"id":35913,"web_url":"https://patchwork.libcamera.org/comment/35913/","msgid":"<f17858f1-53ee-45df-a43c-5b18d2595c39@maciej.szmigiero.name>","date":"2025-09-19T04:15:31","subject":"Re: [PATCH v2 4/6] libcamera: simple: Avoid incorrect arithmetic in\n\tAWB","submitter":{"id":237,"url":"https://patchwork.libcamera.org/api/people/237/","name":"Maciej S. Szmigiero","email":"mail@maciej.szmigiero.name"},"content":"On 9/11/25 15:51, Milan Zamazal wrote:\n> The R/G/B sums computed in AWB simple IPA may be zero or perhaps even\n> negative.  Let's make sure the sums are always positive, to prevent\n> division by zero or completely nonsense results.\n> \n> Signed-off-by: Milan Zamazal <mzamazal@redhat.com>\n> ---\n>   src/ipa/simple/algorithms/awb.cpp | 8 +++++---\n>   1 file changed, 5 insertions(+), 3 deletions(-)\n> \n> diff --git a/src/ipa/simple/algorithms/awb.cpp b/src/ipa/simple/algorithms/awb.cpp\n> index cf567e894..9509129e9 100644\n> --- a/src/ipa/simple/algorithms/awb.cpp\n> +++ b/src/ipa/simple/algorithms/awb.cpp\n> @@ -7,6 +7,7 @@\n>   \n>   #include \"awb.h\"\n>   \n> +#include <algorithm>\n>   #include <numeric>\n>   #include <stdint.h>\n>   \n> @@ -69,9 +70,10 @@ void Awb::process(IPAContext &context,\n>   \tconst uint64_t nPixels = std::accumulate(\n>   \t\thistogram.begin(), histogram.end(), 0);\n>   \tconst uint64_t offset = blackLevel * nPixels;\n> -\tconst uint64_t sumR = stats->sumR_ - offset / 4;\n> -\tconst uint64_t sumG = stats->sumG_ - offset / 2;\n> -\tconst uint64_t sumB = stats->sumB_ - offset / 4;\n> +\tconst uint64_t minValid = 1;\n> +\tconst uint64_t sumR = std::max(stats->sumR_ - offset / 4, minValid);\n> +\tconst uint64_t sumG = std::max(stats->sumG_ - offset / 2, minValid);\n> +\tconst uint64_t sumB = std::max(stats->sumB_ - offset / 4, minValid);\n\nIt looks like stats->sumR_ and offset are both unsigned integers so\nI guess they won't ever go negative?\n\nIn this case if (offset / 4) > stats->sumR_ the result will be a large\npositive value.\n\nThanks,\nMacoej","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 29F65C328C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 19 Sep 2025 04:15:37 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 0355D6B594;\n\tFri, 19 Sep 2025 06:15:36 +0200 (CEST)","from vps-ovh.mhejs.net (vps-ovh.mhejs.net [145.239.82.108])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 49B6369367\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 19 Sep 2025 06:15:34 +0200 (CEST)","from MUA\n\tby vps-ovh.mhejs.net with esmtpsa (TLS1.3) tls TLS_AES_128_GCM_SHA256\n\t(Exim 4.98.2) (envelope-from <mhej@vps-ovh.mhejs.net>)\n\tid 1uzSWz-00000002yUG-30aF; Fri, 19 Sep 2025 06:15:33 +0200"],"Message-ID":"<f17858f1-53ee-45df-a43c-5b18d2595c39@maciej.szmigiero.name>","Date":"Fri, 19 Sep 2025 06:15:31 +0200","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v2 4/6] libcamera: simple: Avoid incorrect arithmetic in\n\tAWB","To":"Milan Zamazal <mzamazal@redhat.com>","Cc":"pobrn@protonmail.com, libcamera-devel@lists.libcamera.org","References":"<20250911135144.56586-1-mzamazal@redhat.com>\n\t<20250911135144.56586-5-mzamazal@redhat.com>","Content-Language":"en-US","From":"\"Maciej S. Szmigiero\" <mail@maciej.szmigiero.name>","Autocrypt":"addr=mail@maciej.szmigiero.name; keydata=\n\t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","In-Reply-To":"<20250911135144.56586-5-mzamazal@redhat.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","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>"}},{"id":35926,"web_url":"https://patchwork.libcamera.org/comment/35926/","msgid":"<85plbm4qq3.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","date":"2025-09-19T11:38:28","subject":"Re: [PATCH v2 4/6] libcamera: simple: Avoid incorrect arithmetic in\n\tAWB","submitter":{"id":177,"url":"https://patchwork.libcamera.org/api/people/177/","name":"Milan Zamazal","email":"mzamazal@redhat.com"},"content":"Hi Maciej,\n\nthank you for review.\n\n\"Maciej S. Szmigiero\" <mail@maciej.szmigiero.name> writes:\n\n> On 9/11/25 15:51, Milan Zamazal wrote:\n>> The R/G/B sums computed in AWB simple IPA may be zero or perhaps even\n>> negative.  Let's make sure the sums are always positive, to prevent\n>\n>> division by zero or completely nonsense results.\n>> Signed-off-by: Milan Zamazal <mzamazal@redhat.com>\n>> ---\n>>   src/ipa/simple/algorithms/awb.cpp | 8 +++++---\n>>   1 file changed, 5 insertions(+), 3 deletions(-)\n>> diff --git a/src/ipa/simple/algorithms/awb.cpp b/src/ipa/simple/algorithms/awb.cpp\n>> index cf567e894..9509129e9 100644\n>> --- a/src/ipa/simple/algorithms/awb.cpp\n>> +++ b/src/ipa/simple/algorithms/awb.cpp\n>> @@ -7,6 +7,7 @@\n>>     #include \"awb.h\"\n>>   +#include <algorithm>\n>>   #include <numeric>\n>>   #include <stdint.h>\n>>   @@ -69,9 +70,10 @@ void Awb::process(IPAContext &context,\n>>   \tconst uint64_t nPixels = std::accumulate(\n>>   \t\thistogram.begin(), histogram.end(), 0);\n>>   \tconst uint64_t offset = blackLevel * nPixels;\n>> -\tconst uint64_t sumR = stats->sumR_ - offset / 4;\n>> -\tconst uint64_t sumG = stats->sumG_ - offset / 2;\n>> -\tconst uint64_t sumB = stats->sumB_ - offset / 4;\n>> +\tconst uint64_t minValid = 1;\n>> +\tconst uint64_t sumR = std::max(stats->sumR_ - offset / 4, minValid);\n>> +\tconst uint64_t sumG = std::max(stats->sumG_ - offset / 2, minValid);\n>> +\tconst uint64_t sumB = std::max(stats->sumB_ - offset / 4, minValid);\n>\n> It looks like stats->sumR_ and offset are both unsigned integers so\n> I guess they won't ever go negative?\n>\n> In this case if (offset / 4) > stats->sumR_ the result will be a large\n> positive value.\n\nGood catch, I'll fix it in v3.  (In theory, the sums shouldn't be below\nthe black level offset, but in practice they can.)\n\n> Thanks,\n> Macoej","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 7AEADC328C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 19 Sep 2025 11:38:37 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 3DA986B597;\n\tFri, 19 Sep 2025 13:38:36 +0200 (CEST)","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 5EECB62C35\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 19 Sep 2025 13:38:34 +0200 (CEST)","from mail-wr1-f72.google.com (mail-wr1-f72.google.com\n\t[209.85.221.72]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-133-H8FxQ8mIMduTQGzg59wabg-1; Fri, 19 Sep 2025 07:38:31 -0400","by mail-wr1-f72.google.com with SMTP id\n\tffacd0b85a97d-3ebc706ef7fso572367f8f.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 19 Sep 2025 04:38:31 -0700 (PDT)","from mzamazal-thinkpadp1gen7.tpbc.csb\n\t(ip-77-48-47-2.net.vodafone.cz. [77.48.47.2])\n\tby smtp.gmail.com with ESMTPSA id\n\tffacd0b85a97d-3ee0fbf3bfcsm7604790f8f.58.2025.09.19.04.38.28\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tFri, 19 Sep 2025 04:38:29 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"U5kumM5j\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1758281913;\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\tin-reply-to:in-reply-to:references:references;\n\tbh=yi7Ty/NB/cpn9fnzqBVDZukueV43dA8RxzJGmGxJlF0=;\n\tb=U5kumM5jfG92k7MtgsJhFhwvQZ852Ib8wxKgiLwGuCmOQsKJF9kHeeJ6H6uckhH4rDmMui\n\tXtHdqM+Gt83pTDxTaPKLUW3BecjXCIev7LjKZfSU+VMY9H+4wJapWiwDC21MBmtCzfap1U\n\tBzx55maKdrNqM+wX72B6tG8kFoXOf8k=","X-MC-Unique":"H8FxQ8mIMduTQGzg59wabg-1","X-Mimecast-MFC-AGG-ID":"H8FxQ8mIMduTQGzg59wabg_1758281910","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1758281910; x=1758886710;\n\th=mime-version:user-agent:message-id:date:references:in-reply-to\n\t:subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=yi7Ty/NB/cpn9fnzqBVDZukueV43dA8RxzJGmGxJlF0=;\n\tb=o5WO5DvcAJEchda9eVQWNzxWMs/hGn5ZNBVlPcpheFd9H2rTD5VTiFxmcjl+zjiNq7\n\tggpbcBODDfJy2EJisPbpAE/2Ksi2huoeUDtyGyi2WSmYThO2BPOfaMw7CgdsEQYkqf+p\n\tS4bEa5NJdVfdCLHV+eKcPMqFGmPbBmtkzc3EmXQxLjl9UTXqNhkH0mx0Gm34oWsEZeN3\n\tXaqbG1u4g0m8RFJnTONiEg6vGspWECzpnR+68VR2WN6aI3Ivri1MmHJy94iKs4hBNI+V\n\tCdVXpZvia6lwXvAYzxYOIlu7ZTIL1nW2A/0vS0rQp74d07AccHjOauG8T8Ghf+EnWQT5\n\tM+RA==","X-Forwarded-Encrypted":"i=1;\n\tAJvYcCW9arevKvh50pGpEuUL/Xqb8jP1tBdmDJASMPpBFbMZDKjwezAoyc3Hj5qE8WB1RW0ZnHL8Gmy21PCOCDr734Y=@lists.libcamera.org","X-Gm-Message-State":"AOJu0Yyc8Tdlf9pkkus25W4Y46lmFmtpfIpuBpwYFf05uXYmZkJvIjsx\n\tE/EGkons7YAOSQ1/tPgew/Bu5gI9DkxHxQ/rlGsgugFvYGCxJd/jS/l3iyWD5g6K6CcQUMl6I5x\n\tPFxDE7OHroygfNoxQtEPKhaM0y769A7ffNzC1ceGphaMCAOqpdUvR7y2kCiaHV3BlzgRrouEE8W\n\tBwSe1lDptOQg+djh8GeYLlgfWDZKGkleTRb4c/h3ztn2OtzMMaDxG0AXFZhQs=","X-Gm-Gg":"ASbGncsLzr/+StDq4W8xsOtg0JAut4nMCfdo7eQYxO+7rydOBwT7xCvD7KgWIPre5+o\n\tnPSLNKxDudsKljUI4gqMLL85X6/9DiUg6UYUXsYzC2UvGnrksuEkRNh282TYt9e0MZ/YyE/OS63\n\t8nTIZs/PMwxqXI2e1rqEJgZK8N6/GHaniFXOiGyGsB547aa9oaVUz+X4IpNSww5PM2EXqKddjKF\n\thGe+yUlgm0ChbhuaiZvTaRvaNmCJsxL4tPUELyKBk913nAk93AJMAPwEJisfNCIXDH5lwrn5Zy2\n\tlKqrYxchGnZtT1rdzLTK9eGrmv0EN6rTzAo68WnIuXc3Q5q8r9DGO/aqpAc2WM1mgLM1fAjhuOJ\n\thSYMA9UiBOF4gPUZ9QA==","X-Received":["by 2002:a5d:5d88:0:b0:3ee:15bb:72c1 with SMTP id\n\tffacd0b85a97d-3ee88b04ed2mr2239469f8f.52.1758281910242; \n\tFri, 19 Sep 2025 04:38:30 -0700 (PDT)","by 2002:a5d:5d88:0:b0:3ee:15bb:72c1 with SMTP id\n\tffacd0b85a97d-3ee88b04ed2mr2239441f8f.52.1758281909675; \n\tFri, 19 Sep 2025 04:38:29 -0700 (PDT)"],"X-Google-Smtp-Source":"AGHT+IHO/fvvVm1J9vgksx02qML3Cmnthsh5bIYeQiWXwA1ATnyCy/IGD3iZ5gQfhFtvvcTlbAJBuA==","From":"Milan Zamazal <mzamazal@redhat.com>","To":"\"Maciej S. Szmigiero\" <mail@maciej.szmigiero.name>","Cc":"pobrn@protonmail.com,  libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH v2 4/6] libcamera: simple: Avoid incorrect arithmetic in\n\tAWB","In-Reply-To":"<f17858f1-53ee-45df-a43c-5b18d2595c39@maciej.szmigiero.name>\n\t(Maciej S. Szmigiero's message of \"Fri, 19 Sep 2025 06:15:31 +0200\")","References":"<20250911135144.56586-1-mzamazal@redhat.com>\n\t<20250911135144.56586-5-mzamazal@redhat.com>\n\t<f17858f1-53ee-45df-a43c-5b18d2595c39@maciej.szmigiero.name>","Date":"Fri, 19 Sep 2025 13:38:28 +0200","Message-ID":"<85plbm4qq3.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","User-Agent":"Gnus/5.13 (Gnus v5.13)","MIME-Version":"1.0","X-Mimecast-Spam-Score":"0","X-Mimecast-MFC-PROC-ID":"C__ucHEsxMi9ZNsrO6jkswdRLMMg70u_36e3POYep84_1758281910","X-Mimecast-Originator":"redhat.com","Content-Type":"text/plain","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>"}}]