[{"id":27768,"web_url":"https://patchwork.libcamera.org/comment/27768/","msgid":"<cnsscfca3ewcqzewfcf3gs3a5ntg6tf7mpsqoneuitpjaqdkr6@muhd2zjwdebq>","date":"2023-09-14T09:43:20","subject":"Re: [libcamera-devel] [PATCH] ipa: rpi: Fix segfault when parsing\n\tinvalid json file","submitter":{"id":143,"url":"https://patchwork.libcamera.org/api/people/143/","name":"Jacopo Mondi","email":"jacopo.mondi@ideasonboard.com"},"content":"Hi Naush\n\nOn Thu, Sep 14, 2023 at 10:27:56AM +0100, Naushir Patuck via libcamera-devel wrote:\n> If the json file parsing failed due to a malformed file, the root\n> pointer would be null. This was not tested and caused a segfault when\n> trying to use the pointer to retrive the version key.\n>\n> Fix this by bailing out early if the parser returns a null pointer.\n\nDoes the parser complains about this, or should you add a message (or\ndo you think it's not necessary ?)\n>\n> Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> ---\n>  src/ipa/rpi/controller/controller.cpp | 3 +++\n>  1 file changed, 3 insertions(+)\n>\n> diff --git a/src/ipa/rpi/controller/controller.cpp b/src/ipa/rpi/controller/controller.cpp\n> index fa1721130783..14d245da2ce7 100644\n> --- a/src/ipa/rpi/controller/controller.cpp\n> +++ b/src/ipa/rpi/controller/controller.cpp\n> @@ -56,6 +56,9 @@ int Controller::read(char const *filename)\n>  \t}\n>\n>  \tstd::unique_ptr<YamlObject> root = YamlParser::parse(file);\n> +\tif (!root)\n> +\t\treturn -EINVAL;\n> +\n>  \tdouble version = (*root)[\"version\"].get<double>(1.0);\n>  \ttarget_ = (*root)[\"target\"].get<std::string>(\"bcm2835\");\n>\n> --\n> 2.34.1\n>","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 030E3BE080\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 14 Sep 2023 09:43:26 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5F13E628E9;\n\tThu, 14 Sep 2023 11:43:26 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id D4F3A628E9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 14 Sep 2023 11:43:23 +0200 (CEST)","from ideasonboard.com (93-61-96-190.ip145.fastwebnet.it\n\t[93.61.96.190])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 398942CF;\n\tThu, 14 Sep 2023 11:41:51 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1694684606;\n\tbh=Tv4ZCEJt+BQPoedTkhr9V4Tzh0N1BZv9gzS8C0iE1r8=;\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=z8K14wr6YxHOslVVbxSovNrJ0GF6fcZ0NxdTasxsHRWhvaVn9arFEqp6EMgbsNdrF\n\t0SMKVLOeoxRot/2VA8gWbRMKE+hTHq7N++p6/jsq+dw5JuGTybQoDJD/Z2LU+POJaG\n\tePTmNr1BC8Wqx6lO93xU0Y7P2QIhzRDBqMqGEUQqFFRMmHCAPuneAQrpGzd4L1ickx\n\tUbAOE7mn7Pjv25F0wbq6MlObYNf+OGMMFPrPVhGpcr+d1jMMwuwPcdP7edLlbu4FBP\n\tpmPAc8LAkaAPMPqwsO6PqtxG2wDlBd9iDpFSQ714dKfUCa/3aSgKsUygvqcpDezEVm\n\twUVTWIZh9uqKg==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1694684511;\n\tbh=Tv4ZCEJt+BQPoedTkhr9V4Tzh0N1BZv9gzS8C0iE1r8=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=eGF7vFyLptRBORj5s8H9jlUGGY4U0fBKWaay0lQmE5vPykNTJxUjcMEjhQttbKG7b\n\twtKkisVbZDuaMWRXcKIcQ5m4mVt0Ik3Q65hf1hxZ/rbCojURWan/ixaN3+E4bGC3Ae\n\t/mBYeHQlSfSOKKgy+kZqpGijXL6f3AKZmjII/eBo="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"eGF7vFyL\"; dkim-atps=neutral","Date":"Thu, 14 Sep 2023 11:43:20 +0200","To":"Naushir Patuck <naush@raspberrypi.com>","Message-ID":"<cnsscfca3ewcqzewfcf3gs3a5ntg6tf7mpsqoneuitpjaqdkr6@muhd2zjwdebq>","References":"<20230914092756.31516-1-naush@raspberrypi.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20230914092756.31516-1-naush@raspberrypi.com>","Subject":"Re: [libcamera-devel] [PATCH] ipa: rpi: Fix segfault when parsing\n\tinvalid json file","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","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":27769,"web_url":"https://patchwork.libcamera.org/comment/27769/","msgid":"<CAHW6GYKAiqjeYZQ=ERB72r35DmNrq7CaQ8DkwBVws7q0aKVV_A@mail.gmail.com>","date":"2023-09-14T09:44:46","subject":"Re: [libcamera-devel] [PATCH] ipa: rpi: Fix segfault when parsing\n\tinvalid json file","submitter":{"id":42,"url":"https://patchwork.libcamera.org/api/people/42/","name":"David Plowman","email":"david.plowman@raspberrypi.com"},"content":"Hi Naush\n\nThanks for the patch.\n\nOn Thu, 14 Sept 2023 at 10:28, Naushir Patuck via libcamera-devel\n<libcamera-devel@lists.libcamera.org> wrote:\n>\n> If the json file parsing failed due to a malformed file, the root\n> pointer would be null. This was not tested and caused a segfault when\n> trying to use the pointer to retrive the version key.\n\ns/retrive/retrieve/\n\nBut otherwise:\n\nReviewed-by: David Plowman <david.plowman@raspberrypi.com>\n\nThanks\nDavid\n\n>\n> Fix this by bailing out early if the parser returns a null pointer.\n>\n> Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> ---\n>  src/ipa/rpi/controller/controller.cpp | 3 +++\n>  1 file changed, 3 insertions(+)\n>\n> diff --git a/src/ipa/rpi/controller/controller.cpp b/src/ipa/rpi/controller/controller.cpp\n> index fa1721130783..14d245da2ce7 100644\n> --- a/src/ipa/rpi/controller/controller.cpp\n> +++ b/src/ipa/rpi/controller/controller.cpp\n> @@ -56,6 +56,9 @@ int Controller::read(char const *filename)\n>         }\n>\n>         std::unique_ptr<YamlObject> root = YamlParser::parse(file);\n> +       if (!root)\n> +               return -EINVAL;\n> +\n>         double version = (*root)[\"version\"].get<double>(1.0);\n>         target_ = (*root)[\"target\"].get<std::string>(\"bcm2835\");\n>\n> --\n> 2.34.1\n>","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 5A04FBE080\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 14 Sep 2023 09:45:00 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 12E9862900;\n\tThu, 14 Sep 2023 11:45:00 +0200 (CEST)","from mail-qt1-x82c.google.com (mail-qt1-x82c.google.com\n\t[IPv6:2607:f8b0:4864:20::82c])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A7BAC628E9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 14 Sep 2023 11:44:58 +0200 (CEST)","by mail-qt1-x82c.google.com with SMTP id\n\td75a77b69052e-412091b9035so4280391cf.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 14 Sep 2023 02:44:58 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1694684700;\n\tbh=1kCToL7AkQJLTEelcOZpMDSfRFEmbh2QcZw2oEPszbY=;\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=J+0JrKP2EhzhS9mDNPKorQPnKHXckjDfr2YB9s9QnmyQ1qYsI1xQ9HykFcPXRU9bn\n\tIg8Polxznwzdcd3AxS/QfynCn8vHzjr+Xc6k6zvTfQXd4JOQ1nqul2owXogjmd+eM/\n\t4Ms5GlhExpU0mCUI6HFQjKpPru+pZBlP3gp83emmnw1MPjo1kaE/OMMQPbxB6/tnut\n\tp4n59wf+vrSOg8ymV4xgwBVXaVqMQiJOEmEFBzUoQ4PwT/Cobl2fLfEuiCTd6YIlKP\n\tZnP/dIjoxsQ6nnuHX1SzCS/RK+EoKRmUIPHxCu8LSZqfYfh5pv7xTh4WQYRBU/LbRB\n\tTfRjOQgjWDvWw==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google; t=1694684697; x=1695289497;\n\tdarn=lists.libcamera.org; \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=hoVKv685JcL2feLcvErLaW2PBU2DTrbxkeIRZzr29GM=;\n\tb=O0z4MhaH//zj/WrjQ/xDDCzr2kmFd99zfZ1PHK2/Sjws4jHYCI5HTi0bQIF1QZXk/c\n\tmCbfCN7oHrg8e99F+vFFvegP2vnossb8G3H3YLw1el8TLIC7lnwOj6W/2Ob0LWqBitqm\n\tQl1bGfWG1W6z7MzAQM5h9+JNgugh/hUqmQY9rlPCKyR8TNwjj05a+aJuiWvH8GVxQ3G8\n\tbpP2yAWC+1noCyf140ciiEYJdlnBtbs+9x5srHVUh1HrvITzSRJ9tQqj2wbecTB3sKms\n\tDt1p4wtojtXCnK00IZHlF4EaxH5bMhg2dld+4Nse7sWwN/xHONIWsEoNi5nv6bFXLN4s\n\t1Amw=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"O0z4MhaH\"; dkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1694684697; x=1695289497;\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=hoVKv685JcL2feLcvErLaW2PBU2DTrbxkeIRZzr29GM=;\n\tb=O24OKMhT8AioeVAkLtuHOzHd6ggOO7OXrNo/CpGZEYKK6zH3F57ICN60M9onPdbNDD\n\tGHcERraO2UDXlxDkQvWAb1Eox0sPcFV7ClIVf1o8PqTKBtQHo1p7RzRBxnbyLPF/o8KV\n\t1YC8Ki1pj87VlNoqrk2CDD4hdtXUWJtp74QH9AGlJxMmuHD7INg9DX1y64x8xXZmGQKe\n\tH1Dk4AtUqih4mCqSea2mS7p0RlbWQPI0C4GfUzhyGMFJQwD9sG10aA9rBWvZrfgttfrv\n\ty7mG0F5RIwoVaFOuwMTMB+X8aXS5WlvL74tmmnRDlHvZIGgDu6fw0544mY6gtSV5BBdx\n\taG0Q==","X-Gm-Message-State":"AOJu0YxDxn4L5fpex1+YejY2zfRt7osnBjUKU0rF6kC5DY31zbHli8r3\n\tSSVNLuwPZX5xFVI+M4r8LyMFgPcz06WjWfdM8NmYMw==","X-Google-Smtp-Source":"AGHT+IH46KHtzxpKqtXzojrpJnFhn/aZHkYswpv73uT2xEjsyPw/+UoYojQi+Dvp44L5WB7r6LritIFrgyu9Rgi9yWE=","X-Received":"by 2002:a05:622a:1010:b0:403:cecf:4ade with SMTP id\n\td16-20020a05622a101000b00403cecf4ademr5675023qte.32.1694684697559;\n\tThu, 14 Sep 2023 02:44:57 -0700 (PDT)","MIME-Version":"1.0","References":"<20230914092756.31516-1-naush@raspberrypi.com>","In-Reply-To":"<20230914092756.31516-1-naush@raspberrypi.com>","Date":"Thu, 14 Sep 2023 10:44:46 +0100","Message-ID":"<CAHW6GYKAiqjeYZQ=ERB72r35DmNrq7CaQ8DkwBVws7q0aKVV_A@mail.gmail.com>","To":"Naushir Patuck <naush@raspberrypi.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH] ipa: rpi: Fix segfault when parsing\n\tinvalid json file","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":"David Plowman via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"David Plowman <david.plowman@raspberrypi.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":27770,"web_url":"https://patchwork.libcamera.org/comment/27770/","msgid":"<CAEmqJPp6LMbjOfStrdp_ZLo3bgA_Woos8fk4kmhhfadqCvW_CQ@mail.gmail.com>","date":"2023-09-14T09:44:59","subject":"Re: [libcamera-devel] [PATCH] ipa: rpi: Fix segfault when parsing\n\tinvalid json file","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"Hi Jacopo,\n\nOn Thu, 14 Sept 2023 at 10:43, Jacopo Mondi\n<jacopo.mondi@ideasonboard.com> wrote:\n>\n> Hi Naush\n>\n> On Thu, Sep 14, 2023 at 10:27:56AM +0100, Naushir Patuck via libcamera-devel wrote:\n> > If the json file parsing failed due to a malformed file, the root\n> > pointer would be null. This was not tested and caused a segfault when\n> > trying to use the pointer to retrive the version key.\n> >\n> > Fix this by bailing out early if the parser returns a null pointer.\n>\n> Does the parser complains about this, or should you add a message (or\n> do you think it's not necessary ?)\n\nYes, the parser provides the error message, so I did not think it was\nneeded here as well:\n\nERROR YamlParser yaml_parser.cpp:844 Failed to parse YAML content from\n/usr/local/share/libcamera/ipa/rpi/vc4/imx219.json\n\nRegards,\nNaush\n\n> >\n> > Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> > ---\n> >  src/ipa/rpi/controller/controller.cpp | 3 +++\n> >  1 file changed, 3 insertions(+)\n> >\n> > diff --git a/src/ipa/rpi/controller/controller.cpp b/src/ipa/rpi/controller/controller.cpp\n> > index fa1721130783..14d245da2ce7 100644\n> > --- a/src/ipa/rpi/controller/controller.cpp\n> > +++ b/src/ipa/rpi/controller/controller.cpp\n> > @@ -56,6 +56,9 @@ int Controller::read(char const *filename)\n> >       }\n> >\n> >       std::unique_ptr<YamlObject> root = YamlParser::parse(file);\n> > +     if (!root)\n> > +             return -EINVAL;\n> > +\n> >       double version = (*root)[\"version\"].get<double>(1.0);\n> >       target_ = (*root)[\"target\"].get<std::string>(\"bcm2835\");\n> >\n> > --\n> > 2.34.1\n> >","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 2CC6BBD160\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 14 Sep 2023 09:45:38 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id D5F8F628FA;\n\tThu, 14 Sep 2023 11:45:37 +0200 (CEST)","from mail-yw1-x1135.google.com (mail-yw1-x1135.google.com\n\t[IPv6:2607:f8b0:4864:20::1135])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 35610628FA\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 14 Sep 2023 11:45:36 +0200 (CEST)","by mail-yw1-x1135.google.com with SMTP id\n\t00721157ae682-59be9a09c23so7466937b3.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 14 Sep 2023 02:45:36 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1694684737;\n\tbh=6E1fNJNPR/8T3a2kWlj/o3uyCsrLoZywDZDCoVqmEfg=;\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=bFtM3cvvymqmWpIIVlkjKRyLHH6pb3GDCVWPeZG7QXnAKi03whPSA/EdFCk0m6LC1\n\t4IXs+pEZloDx3twXGSZtKRqyju8vVNbuWViCSycpdjShs5EoOfxEnlevrqd8I+5NEf\n\tXN29PnoqUVJeriRRh/ru/s7K82Vkd+R+SiOa/kX2v2sIAJ3CWX+pHKGb2x/rc5kWMc\n\tbsIb5wWp91gFI12pP9wRJ1HsDjQ5Ni77AX5b2DzDVXoyFZ8o717JD5dfCmvE4he0f3\n\tbmp5iynf7AUz8rhQR8LFVhIIWsgyZrS75ehrVepmRLJB+Dk/sJB4ugl69D1+So/CJo\n\t14uN0jMIgnwpg==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google; t=1694684735; x=1695289535;\n\tdarn=lists.libcamera.org; \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=qYL70kYuQ+cR0NcBO2dYENMEia7uyXQlAL786F/ekDY=;\n\tb=F0rVCWCfDT4RSv54LI+SR2iBmE4tG8zIe3e9Awm24zbul2+bwD2lM7IrS7P+zZvOvd\n\tfdW+i9+UC98ch0CnAvRVozneY96S5/00jTeY7EH9Z0k6WhLbIL5xL/GUTcDa5V4dsXgZ\n\t9aKOnBfygRb66F5DRxmEdSYnYCOVA8sdbtEMA8efmbZ9CkwXSwItlANuGjk87tP4sboQ\n\tjPak5MsGPVOA0qQpb1iT+Q7YgqkM0wqeiEWWSzAzSjTnT3SoefzYXqRxzftjxYtEJs5M\n\tkNvQV7BxvZHmMQYLVPmwu8lY+D5kTfcPBrzf4CH3p/ew7olljapd/pM1iaQaRUn6n4K3\n\tjECg=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"F0rVCWCf\"; dkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1694684735; x=1695289535;\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=qYL70kYuQ+cR0NcBO2dYENMEia7uyXQlAL786F/ekDY=;\n\tb=amk0gymuOkux/VVQZQxgHnosh3NpNnF/YSDfA/d/IpOmHUej6l48jNdlUMJGeFMK4m\n\tSVsXVC+dvHP3UFfbAgHidO3qfntaNFNDdA+7jyc7zH2f6GxsBloqUiZYVq+Hmw5670dT\n\tJNmM2AQNJSIAUz/R8mKTVsur1DtbxzHYMqCRjgqHhIJnVk9s3jyftlZkzkqjKi+6Zr1s\n\tcIZuu/2hyrxfwzTO17eB7yaFEjKUJwVP7MKOqA7NZEZu7B+F4Vx8HehasVT8WtKt+Xfb\n\tl8pNPNxtITfHVf44cYq9KyVDki2EMlwG/0t5eYCZhWQLet+/czhzFKbzD7BtAfmS4Tzu\n\tKNrg==","X-Gm-Message-State":"AOJu0Yzj9pYfMw+ytXaVkLklo8PWta2BH7YTTUxj3ufhsDYTnhleoBr5\n\tb3Xo8IO+ySq7BY212/ApiUkuB+NcFb7JbrTFCb6M0N0Pc1h68bk5b8kz+Q==","X-Google-Smtp-Source":"AGHT+IEs7ohNimPXSpU0zAWgSRXgBA6nPQjtWoL/o8p+ZEIDvswL/TSCfDpU6b8AADQbFxYmrjJykqzTCfpDZudOAqg=","X-Received":"by 2002:a0d:d992:0:b0:59b:b4d8:c2a9 with SMTP id\n\tb140-20020a0dd992000000b0059bb4d8c2a9mr4271414ywe.51.1694684735025;\n\tThu, 14 Sep 2023 02:45:35 -0700 (PDT)","MIME-Version":"1.0","References":"<20230914092756.31516-1-naush@raspberrypi.com>\n\t<cnsscfca3ewcqzewfcf3gs3a5ntg6tf7mpsqoneuitpjaqdkr6@muhd2zjwdebq>","In-Reply-To":"<cnsscfca3ewcqzewfcf3gs3a5ntg6tf7mpsqoneuitpjaqdkr6@muhd2zjwdebq>","Date":"Thu, 14 Sep 2023 10:44:59 +0100","Message-ID":"<CAEmqJPp6LMbjOfStrdp_ZLo3bgA_Woos8fk4kmhhfadqCvW_CQ@mail.gmail.com>","To":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH] ipa: rpi: Fix segfault when parsing\n\tinvalid json file","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":"Naushir Patuck via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Naushir Patuck <naush@raspberrypi.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":27771,"web_url":"https://patchwork.libcamera.org/comment/27771/","msgid":"<vw3cmdmnrmstupu72l6ty55fcub6yasjqvdjvjbtazdxhcg3z3@jct4jcaxhjdp>","date":"2023-09-14T10:01:09","subject":"Re: [libcamera-devel] [PATCH] ipa: rpi: Fix segfault when parsing\n\tinvalid json file","submitter":{"id":143,"url":"https://patchwork.libcamera.org/api/people/143/","name":"Jacopo Mondi","email":"jacopo.mondi@ideasonboard.com"},"content":"On Thu, Sep 14, 2023 at 10:44:59AM +0100, Naushir Patuck via libcamera-devel wrote:\n> Hi Jacopo,\n>\n> On Thu, 14 Sept 2023 at 10:43, Jacopo Mondi\n> <jacopo.mondi@ideasonboard.com> wrote:\n> >\n> > Hi Naush\n> >\n> > On Thu, Sep 14, 2023 at 10:27:56AM +0100, Naushir Patuck via libcamera-devel wrote:\n> > > If the json file parsing failed due to a malformed file, the root\n> > > pointer would be null. This was not tested and caused a segfault when\n> > > trying to use the pointer to retrive the version key.\n> > >\n> > > Fix this by bailing out early if the parser returns a null pointer.\n> >\n> > Does the parser complains about this, or should you add a message (or\n> > do you think it's not necessary ?)\n>\n> Yes, the parser provides the error message, so I did not think it was\n> needed here as well:\n>\n> ERROR YamlParser yaml_parser.cpp:844 Failed to parse YAML content from\n> /usr/local/share/libcamera/ipa/rpi/vc4/imx219.json\n\nGreat then!\n\nReviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n\n>\n> Regards,\n> Naush\n>\n> > >\n> > > Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> > > ---\n> > >  src/ipa/rpi/controller/controller.cpp | 3 +++\n> > >  1 file changed, 3 insertions(+)\n> > >\n> > > diff --git a/src/ipa/rpi/controller/controller.cpp b/src/ipa/rpi/controller/controller.cpp\n> > > index fa1721130783..14d245da2ce7 100644\n> > > --- a/src/ipa/rpi/controller/controller.cpp\n> > > +++ b/src/ipa/rpi/controller/controller.cpp\n> > > @@ -56,6 +56,9 @@ int Controller::read(char const *filename)\n> > >       }\n> > >\n> > >       std::unique_ptr<YamlObject> root = YamlParser::parse(file);\n> > > +     if (!root)\n> > > +             return -EINVAL;\n> > > +\n> > >       double version = (*root)[\"version\"].get<double>(1.0);\n> > >       target_ = (*root)[\"target\"].get<std::string>(\"bcm2835\");\n> > >\n> > > --\n> > > 2.34.1\n> > >","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 5B5A7BE080\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 14 Sep 2023 10:01:14 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 0C13C628FF;\n\tThu, 14 Sep 2023 12:01:14 +0200 (CEST)","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 96513628DA\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 14 Sep 2023 12:01:12 +0200 (CEST)","from ideasonboard.com (93-61-96-190.ip145.fastwebnet.it\n\t[93.61.96.190])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id EDD722CF;\n\tThu, 14 Sep 2023 11:59:39 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1694685674;\n\tbh=jqu+UDMPVW8t+XJ4JqN/YaocGbXu9Q8yHg2gAaDPyuU=;\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=asN/8+wNsGzzdbrNsf28LwJJ8QixuwdWl6IvzeYUHGH2obuJL/4fqbGkHou0/c9Id\n\tHbgF+grhWrMgwaTIqR1ql5Ju/I5yOb0rz8vY2nLHZi5EDxFT4YftqJRB3n4wHt+f/N\n\ttmJpYMrXNSXKcD2Kz2BaNnJlj/y53JZhZTc8uMdRxJ79PXoqWK6qTkuZxF7tGQVQMp\n\ts/YnnfdWz3Mre2sECrPbT2ALF0vgma3MpxzdVVHGCEicy+K+gWDl3OuQ7OGq+2zs91\n\tJUzapLKIAP19fMs1jiZzkNN4pXycH8OOZsjcrBWjvpaQbiZ/A+NdhTd5YUFRC8idf+\n\tLGKPvJPwkWeYw==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1694685580;\n\tbh=jqu+UDMPVW8t+XJ4JqN/YaocGbXu9Q8yHg2gAaDPyuU=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=qhxHmXlUOH5IiAIS9QD/jDbq6v4Ln7K8KUHPMIBvDo9aR071thlKYks2tr0xjQF1c\n\tT5qfsZfERU4DDut9fLM/aEofYJFVC2IeIEyqdidDCq3nxtlLbzAmM14EDdI86Hykic\n\t6VpUJlONi5fCR+9CnxGcMtgDbrvvXbGsia+Il+e0="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"qhxHmXlU\"; dkim-atps=neutral","Date":"Thu, 14 Sep 2023 12:01:09 +0200","To":"Naushir Patuck <naush@raspberrypi.com>","Message-ID":"<vw3cmdmnrmstupu72l6ty55fcub6yasjqvdjvjbtazdxhcg3z3@jct4jcaxhjdp>","References":"<20230914092756.31516-1-naush@raspberrypi.com>\n\t<cnsscfca3ewcqzewfcf3gs3a5ntg6tf7mpsqoneuitpjaqdkr6@muhd2zjwdebq>\n\t<CAEmqJPp6LMbjOfStrdp_ZLo3bgA_Woos8fk4kmhhfadqCvW_CQ@mail.gmail.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<CAEmqJPp6LMbjOfStrdp_ZLo3bgA_Woos8fk4kmhhfadqCvW_CQ@mail.gmail.com>","Subject":"Re: [libcamera-devel] [PATCH] ipa: rpi: Fix segfault when parsing\n\tinvalid json file","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":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]