[{"id":26629,"web_url":"https://patchwork.libcamera.org/comment/26629/","msgid":"<20230312093930.GB707@pendragon.ideasonboard.com>","date":"2023-03-12T09:39:30","subject":"Re: [libcamera-devel] [PATCH] libcamera: v4l2_device: openat(2)\n\twith O_CLOEXEC to cleanup after exec(3)","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Elias,\n\nThank you for the patch.\n\nOn Sat, Mar 11, 2023 at 01:05:25PM -0600, Elias Naur via libcamera-devel wrote:\n> It's generally a good idea to openat(2) with O_CLOEXEC, but this patch\n> also fixes a problem where the v4l2 devices would report -EBUSY after\n> an exec(3).\n\nCould you elaborate a bit on this -EBUSY problem ?\n\n> Signed-off-by: Elias Naur <mail@eliasnaur.com>\n> ---\n>  src/libcamera/v4l2_device.cpp | 2 +-\n>  1 file changed, 1 insertion(+), 1 deletion(-)\n> \n> diff --git src/libcamera/v4l2_device.cpp src/libcamera/v4l2_device.cpp\n> index 57a88d96..ad9d1e37 100644\n> --- src/libcamera/v4l2_device.cpp\n> +++ src/libcamera/v4l2_device.cpp\n> @@ -86,7 +86,7 @@ int V4L2Device::open(unsigned int flags)\n>  \t\treturn -EBUSY;\n>  \t}\n>  \n> -\tUniqueFD fd(syscall(SYS_openat, AT_FDCWD, deviceNode_.c_str(), flags));\n> +\tUniqueFD fd(syscall(SYS_openat, AT_FDCWD, deviceNode_.c_str(), flags|O_CLOEXEC));\n\nThere should be spaces around the '|'. The utils/checkstyle.py script\nshould have reported that. You can automate running checkstyle.py as a\ngit post-commit (or pre-commit, if desired) hook by copying\nutils/hooks/post-commit to .git/hooks/.\n\nThere's no need to submit a v2 of this patch just for this, I can fix it\nlocally.\n\n>  \tif (!fd.isValid()) {\n>  \t\tint ret = -errno;\n>  \t\tLOG(V4L2, Error) << \"Failed to open V4L2 device '\"","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 6653FBE080\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSun, 12 Mar 2023 09:39:33 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id AC0B6626DA;\n\tSun, 12 Mar 2023 10:39:32 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id AEB58626D6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 12 Mar 2023 10:39:30 +0100 (CET)","from pendragon.ideasonboard.com (85-76-49-20-nat.elisa-mobile.fi\n\t[85.76.49.20])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 6E96A814;\n\tSun, 12 Mar 2023 10:39:29 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1678613972;\n\tbh=9C9Bc7zGMLAWzaeAsewi+V+obiP5NEfPScgUPenUh1c=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=vjxVMoqgnKdOyrhNoe+dBJrBS+fVLEyKR3jM6RO/RtyDj5xo1WaNhnnvi/tfxH7Kz\n\tW5jU97hIsHap0A8GdF5Mlfm+/hNfbj7Zk8B0EezmuuOF3V+mMQhLeu48IKUQDEbWPn\n\t+dj9OV7GXA5PMvm281M+ELuStYEbiOwl4+iRD/Z7BWKWu28QXL6Jo1/UejuE5aBBjE\n\tCR8d2R9NPUNZSVYOtSKEhtavdayUv4/7OHXSBvueYb7L38++kSpraSWqMsgeUrQNij\n\t5zHJUrwDS3D4Yvhsy7vpIkPuWTxJG74cyrSXaP6U1uwuOqMGJjOQM051Ks5FDhx3f/\n\tdqtSMWeElgJvA==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1678613969;\n\tbh=9C9Bc7zGMLAWzaeAsewi+V+obiP5NEfPScgUPenUh1c=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=SopYs7bEIUM8OlCtdWXg2Uor0CwFiQT4uL5SmmkrnDEPEdqauXUUkwITZ03iG6ELA\n\toK05cVykut/wDEqWB+LTOusI0ik7BfSxI536q8QCJM5aiP3xsGbSH8Ae+2MnVO5h9a\n\t7gcqVf86JSIu6kKuz3YDVbGrxVjAt0TkbDft/ujc="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"SopYs7bE\"; dkim-atps=neutral","Date":"Sun, 12 Mar 2023 11:39:30 +0200","To":"Elias Naur <mail@eliasnaur.com>","Message-ID":"<20230312093930.GB707@pendragon.ideasonboard.com>","References":"<20230311190526.17104-1-mail@eliasnaur.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20230311190526.17104-1-mail@eliasnaur.com>","Subject":"Re: [libcamera-devel] [PATCH] libcamera: v4l2_device: openat(2)\n\twith O_CLOEXEC to cleanup after exec(3)","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>","From":"Laurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":26647,"web_url":"https://patchwork.libcamera.org/comment/26647/","msgid":"<20230313082939.7m6nosvbg7acggnd@uno.localdomain>","date":"2023-03-13T08:29:39","subject":"Re: [libcamera-devel] [PATCH] libcamera: v4l2_device: openat(2)\n\twith O_CLOEXEC to cleanup after exec(3)","submitter":{"id":143,"url":"https://patchwork.libcamera.org/api/people/143/","name":"Jacopo Mondi","email":"jacopo.mondi@ideasonboard.com"},"content":"Hi Elias, Laurent\n\nOn Sun, Mar 12, 2023 at 11:39:30AM +0200, Laurent Pinchart via libcamera-devel wrote:\n> Hi Elias,\n>\n> Thank you for the patch.\n>\n> On Sat, Mar 11, 2023 at 01:05:25PM -0600, Elias Naur via libcamera-devel wrote:\n> > It's generally a good idea to openat(2) with O_CLOEXEC, but this patch\n> > also fixes a problem where the v4l2 devices would report -EBUSY after\n> > an exec(3).\n>\n> Could you elaborate a bit on this -EBUSY problem ?\n>\n\nI also wonder if you got into a real bug or this is just potentially\ndangerous. In example I know \"libcamerify\" execs, did you get issues\nwith the file descriptor being kept open across it ?\n\n\n> > Signed-off-by: Elias Naur <mail@eliasnaur.com>\n> > ---\n> >  src/libcamera/v4l2_device.cpp | 2 +-\n> >  1 file changed, 1 insertion(+), 1 deletion(-)\n> >\n> > diff --git src/libcamera/v4l2_device.cpp src/libcamera/v4l2_device.cpp\n> > index 57a88d96..ad9d1e37 100644\n> > --- src/libcamera/v4l2_device.cpp\n> > +++ src/libcamera/v4l2_device.cpp\n> > @@ -86,7 +86,7 @@ int V4L2Device::open(unsigned int flags)\n> >  \t\treturn -EBUSY;\n> >  \t}\n> >\n> > -\tUniqueFD fd(syscall(SYS_openat, AT_FDCWD, deviceNode_.c_str(), flags));\n> > +\tUniqueFD fd(syscall(SYS_openat, AT_FDCWD, deviceNode_.c_str(), flags|O_CLOEXEC));\n>\n> There should be spaces around the '|'. The utils/checkstyle.py script\n> should have reported that. You can automate running checkstyle.py as a\n> git post-commit (or pre-commit, if desired) hook by copying\n> utils/hooks/post-commit to .git/hooks/.\n>\n> There's no need to submit a v2 of this patch just for this, I can fix it\n> locally.\n>\nAnyway, I think this is generally a good idea and with Laurent's\ncomment on style addressed at apply time\n\nReviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n\nThanks\n  j\n\n> >  \tif (!fd.isValid()) {\n> >  \t\tint ret = -errno;\n> >  \t\tLOG(V4L2, Error) << \"Failed to open V4L2 device '\"\n>\n> --\n> Regards,\n>\n> Laurent Pinchart","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 28C96BE080\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 13 Mar 2023 08:29:47 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 8ABB062706;\n\tMon, 13 Mar 2023 09:29:46 +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 57E66626B2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 13 Mar 2023 09:29:45 +0100 (CET)","from ideasonboard.com (host-79-33-55-183.retail.telecomitalia.it\n\t[79.33.55.183])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 438BF563;\n\tMon, 13 Mar 2023 09:29:44 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1678696186;\n\tbh=0+PpQCZ8kD2kP+XwH7kSXtURAHJCGBwJeeM1UjjmCCo=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=hIITciLgPp9q2LeepHYG2e7suDZgbpJfX9wxRmsxzKwPB8iHC4OggqC8VuF6IbRrK\n\t8YmeTg/zsCUI8NTmDJaV5eQ4q2/cjrSE9aobZFQ1FMZe652dZbXFx9bm6yWbsHfkms\n\t6svTCwT3dxRam6Ngaubj6lbE5+uuKZqg+7XQBH2Z8W5OZDAjfGZS2V5Ga3NZACTlsp\n\tgMYK9DpWdtOTvOU4PgQzxxtEQAxkfsCXXFbVRIpxaEP+RY9E0bdyEUKWcGN4AMFq9h\n\tQ76f8kUeJ4aktc/yJd2o9uY+Mgel2ZCE/awbRL0HtGczfryb4IQD0wIShxNxbrRDwu\n\tgRwnFRgkF5MAQ==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1678696184;\n\tbh=0+PpQCZ8kD2kP+XwH7kSXtURAHJCGBwJeeM1UjjmCCo=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=MhA8HbRmGNWnemyQsUw6NNCvK74V6cKgTgb2acYceJpZ/WWRmZ29JX76tZJTz3LpM\n\tgLWmNSPaOpklgG15hoMn+EcGUCpl0J5xjcB4XgvT71enYP5bBeaJ+CmxTaJ0CL9Ia9\n\tEzBxPlQb5mf3SrwCP64fF+o5BzTVPA2n6vSSWkgY="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"MhA8HbRm\"; dkim-atps=neutral","Date":"Mon, 13 Mar 2023 09:29:39 +0100","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Message-ID":"<20230313082939.7m6nosvbg7acggnd@uno.localdomain>","References":"<20230311190526.17104-1-mail@eliasnaur.com>\n\t<20230312093930.GB707@pendragon.ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20230312093930.GB707@pendragon.ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH] libcamera: v4l2_device: openat(2)\n\twith O_CLOEXEC to cleanup after exec(3)","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>","From":"Jacopo Mondi via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org, Elias Naur <mail@eliasnaur.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":26658,"web_url":"https://patchwork.libcamera.org/comment/26658/","msgid":"<CAMAFT9U_Xp3VEPZhq8xOGA-L2L_x2EeJ53rLaz8uao37htOE+w@mail.gmail.com>","date":"2023-03-14T14:59:11","subject":"Re: [libcamera-devel] [PATCH] libcamera: v4l2_device: openat(2)\n\twith O_CLOEXEC to cleanup after exec(3)","submitter":{"id":159,"url":"https://patchwork.libcamera.org/api/people/159/","name":"Elias Naur","email":"mail@eliasnaur.com"},"content":"Thank you for your reviews. See updated patch[0] that correct the\nstyle issue and elaborates\nthe problem O_CLOEXEC solves for me.\n\n[0] https://lists.libcamera.org/pipermail/libcamera-devel/2023-March/037100.html\n\nOn Mon, 13 Mar 2023 at 02:29, Jacopo Mondi\n<jacopo.mondi@ideasonboard.com> wrote:\n>\n> Hi Elias, Laurent\n>\n> On Sun, Mar 12, 2023 at 11:39:30AM +0200, Laurent Pinchart via libcamera-devel wrote:\n> > Hi Elias,\n> >\n> > Thank you for the patch.\n> >\n> > On Sat, Mar 11, 2023 at 01:05:25PM -0600, Elias Naur via libcamera-devel wrote:\n> > > It's generally a good idea to openat(2) with O_CLOEXEC, but this patch\n> > > also fixes a problem where the v4l2 devices would report -EBUSY after\n> > > an exec(3).\n> >\n> > Could you elaborate a bit on this -EBUSY problem ?\n> >\n>\n> I also wonder if you got into a real bug or this is just potentially\n> dangerous. In example I know \"libcamerify\" execs, did you get issues\n> with the file descriptor being kept open across it ?\n>\n\nIt's a weird corner-case: a self-updating executable for an appliance-style\ndeployment of a buildroot-like environment. I hope I explained the problem\nbetter in the v2 patch.\n\n>\n> > > Signed-off-by: Elias Naur <mail@eliasnaur.com>\n> > > ---\n> > >  src/libcamera/v4l2_device.cpp | 2 +-\n> > >  1 file changed, 1 insertion(+), 1 deletion(-)\n> > >\n> > > diff --git src/libcamera/v4l2_device.cpp src/libcamera/v4l2_device.cpp\n> > > index 57a88d96..ad9d1e37 100644\n> > > --- src/libcamera/v4l2_device.cpp\n> > > +++ src/libcamera/v4l2_device.cpp\n> > > @@ -86,7 +86,7 @@ int V4L2Device::open(unsigned int flags)\n> > >             return -EBUSY;\n> > >     }\n> > >\n> > > -   UniqueFD fd(syscall(SYS_openat, AT_FDCWD, deviceNode_.c_str(), flags));\n> > > +   UniqueFD fd(syscall(SYS_openat, AT_FDCWD, deviceNode_.c_str(), flags|O_CLOEXEC));\n> >\n> > There should be spaces around the '|'. The utils/checkstyle.py script\n> > should have reported that. You can automate running checkstyle.py as a\n> > git post-commit (or pre-commit, if desired) hook by copying\n> > utils/hooks/post-commit to .git/hooks/.\n> >\n> > There's no need to submit a v2 of this patch just for this, I can fix it\n> > locally.\n> >\n> Anyway, I think this is generally a good idea and with Laurent's\n> comment on style addressed at apply time\n>\n\nAddressed in v2.","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 6C55FBE080\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 14 Mar 2023 14:59:26 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id AE56C626D8;\n\tTue, 14 Mar 2023 15:59:25 +0100 (CET)","from mail-qk1-x730.google.com (mail-qk1-x730.google.com\n\t[IPv6:2607:f8b0:4864:20::730])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 7428C626D6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 14 Mar 2023 15:59:23 +0100 (CET)","by mail-qk1-x730.google.com with SMTP id p20so2086635qkh.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 14 Mar 2023 07:59:23 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1678805965;\n\tbh=ZzueTnQpEPNJLdnBAApzBjzQDrt/mLTugyZWi2IZbXw=;\n\th=References:In-Reply-To:Date:To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=bMu976h9IfCH1ZRGpq2OrNkE4gnW5DfeUkXS5MwzjivN0mqJtumap7jxWeVHD81qo\n\tA3h3LzD9KX1OKuEdkho7wd7SlwhlcbiAXQ7QEJTNulhxgZaU7WXZAGbV6lUMj5u4n4\n\tlVV2TnOtfHoi9XwlHSJqz2H3NOncYcgYuL6FLd1/lskfmgXwNn/p1VJYbMJWjjPJUo\n\t7qGNGiKBU+EMe9gPjv8Xu5HGf678D4wpu1a6Jg4xT53ynWmEBPjSswQhXdO5zc4Aaq\n\tQCAqNmDIl7JkLr5i3xQoj9xr1eVmRmTbbfnD/pDxkNU+R2C4k1UyUT3OdL6CxUM3ur\n\t376VObVfh6aLw==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=eliasnaur.com; s=google; t=1678805962;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:from:to:cc:subject:date:message-id:reply-to;\n\tbh=M0nAgWwLKaL9cUdt+hpmvySXcTg4o2k509eu26SvMxI=;\n\tb=akFSsT+ccmQwMZnqeDDG7MbQed3Lo1nZ7gdsO1QALCqTE2NflTUmrPKPSIUDKQPUpA\n\tqQuwrGWwf59FouiKFXqHJDEjM7DYv1ps5s8LJjeUkArEpeWdDpIvvLnL5c38aNkwVtiZ\n\tDT2YZXxL55kRcsGlyAewvKvf+SWZUUou21vhelB8Pb9ydNeU59zcbdT7icguMnFrKOG9\n\taYJO/3j2yHBGe+EF0VC5Kd8IVQhNc2W6ChM21ASKeowowlQPp1KYYvQo1RbFvBnrRpzv\n\tbZn1tA8ixBb/aTKaKA1JNKr5GhswcHjwBqv2IMc3mBQ5rrm7Qu9UpiVmwbEIRws21+Rn\n\ts54A=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=eliasnaur.com\n\theader.i=@eliasnaur.com\n\theader.b=\"akFSsT+c\"; dkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112; t=1678805962;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:x-gm-message-state:from:to:cc:subject:date:message-id\n\t:reply-to;\n\tbh=M0nAgWwLKaL9cUdt+hpmvySXcTg4o2k509eu26SvMxI=;\n\tb=d0wh6t2XkXyOysjk4ugfURrgr/oC2tZniz5De4VXQ0bsZG9Je+g9qJW8uCTgZmjFYT\n\t7Gp/pgCaobEgunhjoekehwsKpZtHk3GRvRU5zd0+L812UCPrasq+QjN1w1dk9LBdQWt8\n\tVoqL1xq2IDlYojBMc0xx1m2SWN266eWUVOjmBUQHNgO3/8QcSSnvycWRi0fnGBAlNNc6\n\t0ZtStdu4EEwloiQBjGKuxbBOAyl70sq8mAEJqqDkK3P0kPPNW0PprM28sGm5Yp5OvQw4\n\tyD6QJVF7um8uB3Y4DYq3mzaS0dHMvqebyYrLodhAh2Ud5gVsstAx+Ll8j+zH2464JfjQ\n\tYFyA==","X-Gm-Message-State":"AO0yUKXWggY5ieaSDyODJd6HwiJubAucJoiTt7i7GaVTza3gjLv20z7b\n\tHrMPa041YoUeA85UnGdkwBOY9UpJBFa7Cj8tY1LTmA==","X-Google-Smtp-Source":"AK7set8X5fNVGabPzXI/J9Jx6tI7UxoTksdT6gSgzEtnXGycQy38SPmLnJH8gxhyK/7ULcXgzKChzSfl9gH3jrpuuwI=","X-Received":"by 2002:a05:620a:88e:b0:744:1b56:d258 with SMTP id\n\tb14-20020a05620a088e00b007441b56d258mr2260363qka.7.1678805962315;\n\tTue, 14 Mar 2023 07:59:22 -0700 (PDT)","MIME-Version":"1.0","References":"<20230311190526.17104-1-mail@eliasnaur.com>\n\t<20230312093930.GB707@pendragon.ideasonboard.com>\n\t<20230313082939.7m6nosvbg7acggnd@uno.localdomain>","In-Reply-To":"<20230313082939.7m6nosvbg7acggnd@uno.localdomain>","Date":"Tue, 14 Mar 2023 08:59:11 -0600","Message-ID":"<CAMAFT9U_Xp3VEPZhq8xOGA-L2L_x2EeJ53rLaz8uao37htOE+w@mail.gmail.com>","To":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH] libcamera: v4l2_device: openat(2)\n\twith O_CLOEXEC to cleanup after exec(3)","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>","From":"Elias Naur via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Elias Naur <mail@eliasnaur.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]