[{"id":21507,"web_url":"https://patchwork.libcamera.org/comment/21507/","msgid":"<006d1d68-d675-1629-f02a-41868f9da295@ideasonboard.com>","date":"2021-12-01T10:35:45","subject":"Re: [libcamera-devel] [PATCH v5 10/12] android: camera_device: Fix\n\tvariables access without protection","submitter":{"id":86,"url":"https://patchwork.libcamera.org/api/people/86/","name":"Umang Jain","email":"umang.jain@ideasonboard.com"},"content":"Hi Hiro,\n\nOn 12/1/21 1:23 PM, Hirokazu Honda wrote:\n> This fixes the code accessing descriptors and\n> Camera3RequestDescriptor::pendingStreamsToProcess_ without holding\n> descriptorsMutex_ and Camera3RequestDescriptor::streamProcessMutex_\n> in CameraDevice.\n>\n> Signed-off-by: Hirokazu Honda <hiroh@chromium.org>\n> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n\nReviewed-by: Umang Jain <umang.jain@ideasonboard.com>\n\n> ---\n>   src/android/camera_device.cpp | 9 ++++++++-\n>   1 file changed, 8 insertions(+), 1 deletion(-)\n>\n> diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp\n> index d74307a2..c7de5da0 100644\n> --- a/src/android/camera_device.cpp\n> +++ b/src/android/camera_device.cpp\n> @@ -421,7 +421,11 @@ void CameraDevice::stop()\n>   \tworker_.stop();\n>   \tcamera_->stop();\n>   \n> -\tdescriptors_ = {};\n> +\t{\n> +\t\tMutexLocker descriptorsLock(descriptorsMutex_);\n> +\t\tdescriptors_ = {};\n> +\t}\n> +\n>   \tstreams_.clear();\n>   \n>   \tstate_ = State::Stopped;\n> @@ -918,6 +922,9 @@ int CameraDevice::processCaptureRequest(camera3_capture_request_t *camera3Reques\n>   \t\t */\n>   \t\tFrameBuffer *frameBuffer = nullptr;\n>   \t\tint acquireFence = -1;\n> +\n> +\t\tMutexLocker lock(descriptor->streamsProcessMutex_);\n> +\n>   \t\tswitch (cameraStream->type()) {\n>   \t\tcase CameraStream::Type::Mapped:\n>   \t\t\t/*","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 3A015BDB13\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  1 Dec 2021 10:35:51 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E3B8A6071B;\n\tWed,  1 Dec 2021 11:35:50 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id CDF8C60718\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  1 Dec 2021 11:35:49 +0100 (CET)","from [192.168.1.106] (unknown [103.251.226.170])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 12DF28AE;\n\tWed,  1 Dec 2021 11:35:48 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"EZOxrFCH\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1638354949;\n\tbh=3C0WZ+tAtbHLmFO1KRCEzBHhqmkt2XM6jd3qiXpv9+I=;\n\th=Subject:To:References:From:Date:In-Reply-To:From;\n\tb=EZOxrFCHNmnrU0gHdw/WiTQM02lJK7QbCRBh+ibUcuqm9AOg/SffTPy0TY2JV+Ra6\n\tthDX6ve8ltmzYelyFwm6jDpRUgpEA4FcPZM3/J93adKq3R8uTdkFRiQwDvn4s0kf7I\n\tpqPRmV+rtet+aaMsWAPrcpLEtzNbKIByUk8C+rbk=","To":"Hirokazu Honda <hiroh@chromium.org>, libcamera-devel@lists.libcamera.org","References":"<20211201075348.3121186-1-hiroh@chromium.org>\n\t<20211201075348.3121186-11-hiroh@chromium.org>","From":"Umang Jain <umang.jain@ideasonboard.com>","Message-ID":"<006d1d68-d675-1629-f02a-41868f9da295@ideasonboard.com>","Date":"Wed, 1 Dec 2021 16:05:45 +0530","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101\n\tThunderbird/78.10.2","MIME-Version":"1.0","In-Reply-To":"<20211201075348.3121186-11-hiroh@chromium.org>","Content-Type":"text/plain; charset=utf-8; format=flowed","Content-Transfer-Encoding":"7bit","Content-Language":"en-US","Subject":"Re: [libcamera-devel] [PATCH v5 10/12] android: camera_device: Fix\n\tvariables access without protection","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>"}}]