On (21/02/17 13:15), Enrico Weigelt, metux IT consult wrote:
> Under rare circumstances it may happen that a device node's name is NULL
> (most likely kernel bug in some other place). In such situations anything
> but helpful, if the debug printout crashes, and nobody knows what actually
> happened here.
> 
> Therefore protect it by an explicit NULL check and print out an extra
> warning.
> 
> Signed-off-by: Enrico Weigelt, metux IT consult <i...@metux.net>
> ---
>  lib/vsprintf.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/lib/vsprintf.c b/lib/vsprintf.c
> index 3b53c73580c5..050a60b88073 100644
> --- a/lib/vsprintf.c
> +++ b/lib/vsprintf.c
> @@ -2013,6 +2013,10 @@ char *device_node_string(char *buf, char *end, struct 
> device_node *dn,
>                       break;
>               case 'n':       /* name */
>                       p = fwnode_get_name(of_fwnode_handle(dn));
> +                     if (!p) {
> +                             pr_warn("device_node without name. Kernel bug 
> ?\n");
> +                             p = "<NULL>";
> +                     }
>                       precision = str_spec.precision;
>                       str_spec.precision = strchrnul(p, '@') - p;
>                       buf = string(buf, end, p, str_spec);

What about other fwnode_get_name() calls in vsprintf?

        -ss

Reply via email to