lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Mon, 12 Feb 2018 12:51:05 -0800
From:   Frank Rowand <frowand.list@...il.com>
To:     Geert Uytterhoeven <geert@...ux-m68k.org>
Cc:     Rob Herring <robh+dt@...nel.org>,
        Pantelis Antoniou <pantelis.antoniou@...sulko.com>,
        Pantelis Antoniou <panto@...oniou-consulting.com>,
        "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" 
        <devicetree@...r.kernel.org>,
        Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH v2 4/4] of: improve reporting invalid overlay target path

On 02/12/18 01:00, Geert Uytterhoeven wrote:
> Hi Frank,
> 
> On Mon, Feb 12, 2018 at 9:51 AM,  <frowand.list@...il.com> wrote:
>> From: Frank Rowand <frank.rowand@...y.com>
>>
>> Errors while developing the patch to create of_overlay_fdt_apply()
>> exposed inadequate error messages to debug problems when overlay
>> devicetree fragment nodes contain an invalid target path.  Improve
>> the messages in find_target_node() to remedy this.
>>
>> Signed-off-by: Frank Rowand <frank.rowand@...y.com>
> 
> Thanks for your patch!
> 
>> --- a/drivers/of/overlay.c
>> +++ b/drivers/of/overlay.c
>> @@ -488,17 +488,26 @@ static int build_changeset(struct overlay_changeset *ovcs)
>>   */
>>  static struct device_node *find_target_node(struct device_node *info_node)
>>  {
>> +       struct device_node *node;
>>         const char *path;
>>         u32 val;
>>         int ret;
>>
>>         ret = of_property_read_u32(info_node, "target", &val);
>> -       if (!ret)
>> -               return of_find_node_by_phandle(val);
>> +       if (!ret) {
>> +               node = of_find_node_by_phandle(val);
>> +               if (!node)
>> +                       pr_err("target node find by phandle failed\n");
> 
> Do you want to print the actual node, cfr. below?

That seems like a good idea.  The name printed below is the (short) node
name of the fragment, which seems useful.

Will do, but will remove the pointer to the node, which is more of an
internal debugging detail.


>> +               return node;
>> +       }
>>
>>         ret = of_property_read_string(info_node, "target-path", &path);
>> -       if (!ret)
>> -               return of_find_node_by_path(path);
>> +       if (!ret) {
>> +               node =  of_find_node_by_path(path);
>> +               if (!node)
>> +                       pr_err("target node find by path failed\n");
> 
> Likewise.

Will do.


>> +               return node;
>> +       }
>>
>>         pr_err("Failed to find target for node %p (%s)\n",
>>                 info_node, info_node->name);
> 
> This one prints more info.
> 
> Gr{oetje,eeting}s,
> 
>                         Geert
> 
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@...ux-m68k.org
> 
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
>                                 -- Linus Torvalds
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ