[{"id":5217,"web_url":"https://patchwork.libcamera.org/comment/5217/","msgid":"<821f0379-2cc8-e9b0-28c6-e30ee4103976@uajain.com>","date":"2020-06-16T14:34:54","subject":"Re: [libcamera-devel] [PATCH] v4l2: v4l2_camera_proxy,\n\tv4l2_camera: Check return values of read/write","submitter":{"id":1,"url":"https://patchwork.libcamera.org/api/people/1/","name":"Umang Jain","email":"email@uajain.com"},"content":"Hi Paul,\n\nThank you for the patch.\n\nOn 6/16/20 4:24 PM, Paul Elder wrote:\n> The return value of the write to the eventfd (to signal POLLIN) from\n> V4L2Camera and the read from the eventfd (to clear POLLIN) from\n> V4L2CameraProxy was not ignored. Check the return value, and print an\nMaybe you mean s/was not ignored/should not be ignored ?\n> error message.\n>\n> Reported-by: Coverity CID=290743\n> Reported-by: Coverity CID=290744\n> Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>\n> ---\n>   src/v4l2/v4l2_camera.cpp       | 4 +++-\n>   src/v4l2/v4l2_camera_proxy.cpp | 4 +++-\n>   2 files changed, 6 insertions(+), 2 deletions(-)\n>\n> diff --git a/src/v4l2/v4l2_camera.cpp b/src/v4l2/v4l2_camera.cpp\n> index 3c36932..9a1ebc8 100644\n> --- a/src/v4l2/v4l2_camera.cpp\n> +++ b/src/v4l2/v4l2_camera.cpp\n> @@ -91,7 +91,9 @@ void V4L2Camera::requestComplete(Request *request)\n>   \tbufferLock_.unlock();\n>   \n>   \tuint64_t data = 1;\n> -\t::write(efd_, &data, sizeof(data));\n> +\tint ret = ::write(efd_, &data, sizeof(data));\n> +\tif (ret != sizeof(data))\n> +\t\tLOG(V4L2Compat, Error) << \"Failed to signal eventfd POLLIN\";\n>   \n>   \tbufferSema_.release();\n>   }\n> diff --git a/src/v4l2/v4l2_camera_proxy.cpp b/src/v4l2/v4l2_camera_proxy.cpp\n> index 308a8ab..17477ab 100644\n> --- a/src/v4l2/v4l2_camera_proxy.cpp\n> +++ b/src/v4l2/v4l2_camera_proxy.cpp\n> @@ -454,7 +454,9 @@ int V4L2CameraProxy::vidioc_dqbuf(struct v4l2_buffer *arg)\n>   \tcurrentBuf_ = (currentBuf_ + 1) % bufferCount_;\n>   \n>   \tuint64_t data;\n> -\t::read(efd_, &data, sizeof(data));\n> +\tret = ::read(efd_, &data, sizeof(data));\n> +\tif (ret != sizeof(data))\n> +\t\tLOG(V4L2Compat, Error) << \"Failed to clear eventfd POLLIN\";\n>   \n>   \treturn 0;\n>   }","headers":{"Return-Path":"<bounces+15657259-5c31-libcamera-devel=lists.libcamera.org@em7280.uajain.com>","Received":["from o1.f.az.sendgrid.net (o1.f.az.sendgrid.net [208.117.55.132])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 12236603C1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 16 Jun 2020 16:34:56 +0200 (CEST)","by filter0105p3las1.sendgrid.net with SMTP id\n\tfilter0105p3las1-24116-5EE8D88E-E4\n\t2020-06-16 14:34:54.935895837 +0000 UTC m=+677999.601103906","from mail.uajain.com (unknown)\n\tby ismtpd0066p1mdw1.sendgrid.net (SG) with ESMTP\n\tid RdLqEa4uRu6ZH2ptlbuiZQ Tue, 16 Jun 2020 14:34:54.556 +0000 (UTC)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=uajain.com\n\theader.i=@uajain.com header.b=\"CaJAaGlw\"; \n\tdkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=uajain.com;\n\th=subject:references:from:mime-version:in-reply-to:to:content-type:\n\tcontent-transfer-encoding;\n\ts=s1; bh=ouj6CxntTQ2vAdK2Q3ytE7r83PVZdZpDO6g8+kVDrOE=;\n\tb=CaJAaGlwMommuXZ3b1UPenKfP7rel24OwXKmnumv9PJJa1vDkwWTi+d0SGJlwKv0ivBO\n\tFFcyrg5Pqo6ByRkGw8k8hxoP1PXpA/K5xyyopMh9drokPOWAPD6TLg5uY4gcQAZ9LU4ZVa\n\tsq8g9rvLmlplmzdZ+zz3mw15ByP/MHJB8=","References":"<20200616105434.57451-1-paul.elder@ideasonboard.com>","From":"Umang Jain <email@uajain.com>","Message-ID":"<821f0379-2cc8-e9b0-28c6-e30ee4103976@uajain.com>","Date":"Tue, 16 Jun 2020 14:34:54 +0000 (UTC)","Mime-Version":"1.0","In-Reply-To":"<20200616105434.57451-1-paul.elder@ideasonboard.com>","X-SG-EID":"1Q40EQ7YGir8a9gjSIAdTjhngY657NMk9ckeo4dbHZDiOpywc/L3L9rFqlwE4KPcYnCu86f3L0M7Nw13AAh1QmOVn3kI+Fv+5y/g0AP+a5TLYV6rPAQ6JL5H6zsjdkn+KQWm1Zppz8zWkKf5uP/1Pin3GhcocVJ4py8dU8vWylQzgXsd+Zbx7WoJ7nsE3KmrNvNdMxtwAEfvypcEIpMtc+x7Qlvl9dJDimr3wFz4O4GQreCwt2PaNYznAsddUrjj","To":"Paul Elder <paul.elder@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=us-ascii; format=flowed","Content-Transfer-Encoding":"7bit","Content-Language":"en-US","Subject":"Re: [libcamera-devel] [PATCH] v4l2: v4l2_camera_proxy,\n\tv4l2_camera: Check return values of read/write","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>","X-List-Received-Date":"Tue, 16 Jun 2020 14:34:57 -0000"}},{"id":5228,"web_url":"https://patchwork.libcamera.org/comment/5228/","msgid":"<20200617003139.GP913@pendragon.ideasonboard.com>","date":"2020-06-17T00:31:39","subject":"Re: [libcamera-devel] [PATCH] v4l2: v4l2_camera_proxy,\n\tv4l2_camera: Check return values of read/write","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Paul,\n\nThank you for the patch.\n\nOn Tue, Jun 16, 2020 at 07:54:34PM +0900, Paul Elder wrote:\n> The return value of the write to the eventfd (to signal POLLIN) from\n> V4L2Camera and the read from the eventfd (to clear POLLIN) from\n> V4L2CameraProxy was not ignored. Check the return value, and print an\n\nAs pointed out by Umang, \"was not ignored\" doesn't seem right.\n\nApart from that,\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n> error message.\n> \n> Reported-by: Coverity CID=290743\n> Reported-by: Coverity CID=290744\n> Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>\n> ---\n>  src/v4l2/v4l2_camera.cpp       | 4 +++-\n>  src/v4l2/v4l2_camera_proxy.cpp | 4 +++-\n>  2 files changed, 6 insertions(+), 2 deletions(-)\n> \n> diff --git a/src/v4l2/v4l2_camera.cpp b/src/v4l2/v4l2_camera.cpp\n> index 3c36932..9a1ebc8 100644\n> --- a/src/v4l2/v4l2_camera.cpp\n> +++ b/src/v4l2/v4l2_camera.cpp\n> @@ -91,7 +91,9 @@ void V4L2Camera::requestComplete(Request *request)\n>  \tbufferLock_.unlock();\n>  \n>  \tuint64_t data = 1;\n> -\t::write(efd_, &data, sizeof(data));\n> +\tint ret = ::write(efd_, &data, sizeof(data));\n> +\tif (ret != sizeof(data))\n> +\t\tLOG(V4L2Compat, Error) << \"Failed to signal eventfd POLLIN\";\n>  \n>  \tbufferSema_.release();\n>  }\n> diff --git a/src/v4l2/v4l2_camera_proxy.cpp b/src/v4l2/v4l2_camera_proxy.cpp\n> index 308a8ab..17477ab 100644\n> --- a/src/v4l2/v4l2_camera_proxy.cpp\n> +++ b/src/v4l2/v4l2_camera_proxy.cpp\n> @@ -454,7 +454,9 @@ int V4L2CameraProxy::vidioc_dqbuf(struct v4l2_buffer *arg)\n>  \tcurrentBuf_ = (currentBuf_ + 1) % bufferCount_;\n>  \n>  \tuint64_t data;\n> -\t::read(efd_, &data, sizeof(data));\n> +\tret = ::read(efd_, &data, sizeof(data));\n> +\tif (ret != sizeof(data))\n> +\t\tLOG(V4L2Compat, Error) << \"Failed to clear eventfd POLLIN\";\n>  \n>  \treturn 0;\n>  }","headers":{"Return-Path":"<laurent.pinchart@ideasonboard.com>","Received":["from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 9843B603D8\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 17 Jun 2020 02:32:02 +0200 (CEST)","from pendragon.ideasonboard.com (81-175-216-236.bb.dnainternet.fi\n\t[81.175.216.236])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 37B83F9;\n\tWed, 17 Jun 2020 02:32:02 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"Tma47LrL\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1592353922;\n\tbh=GtuguZMLoUBKDNTPrxQBDCGCTQcaX0dC0CNcmshoqRY=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=Tma47LrLCkY/bsor9ICkuOB1+GDW3GT+p3WwV1kVx9GBftBbA2K73xPi4M9i7KdUx\n\tO6ISGPsgphNcC4JTPc0IUqBf8ZnI03Bq7k0R6PE5VsbjePydOg7LLP9oQndkM8QSpA\n\t+X3nL1lMbiuvf19C+UjA0dFqYx1AKI4H1LeObQmo=","Date":"Wed, 17 Jun 2020 03:31:39 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Paul Elder <paul.elder@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20200617003139.GP913@pendragon.ideasonboard.com>","References":"<20200616105434.57451-1-paul.elder@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20200616105434.57451-1-paul.elder@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH] v4l2: v4l2_camera_proxy,\n\tv4l2_camera: Check return values of read/write","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>","X-List-Received-Date":"Wed, 17 Jun 2020 00:32:02 -0000"}}]