On pondělí 9. dubna 2018 9:31:54 CEST Ilya Shipitsin wrote: > [dix/inpututils.c:909] -> [dix/inpututils.c:905]: (warning) Either the > condition 'if(list)' is redundant or there is possible null pointer > dereference: list.
I think this is a false positive by cppcheck. It looks like it misinterprets the `list.next` in the macro as dereferencing the `list` variable. The `nt_list_init(opt, list.next)` macro expands to: (opt)->list.next = NULL So wrapping it in the `if (list)` condition is not correct. Michal Srb > --- > dix/inpututils.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/dix/inpututils.c b/dix/inpututils.c > index 6bff9efab..f4c386a24 100644 > --- a/dix/inpututils.c > +++ b/dix/inpututils.c > @@ -902,7 +902,9 @@ input_option_new(InputOption *list, const char *key, > const char *value) if (!opt) > return NULL; > > - nt_list_init(opt, list.next); > + if (list) > + nt_list_init(opt, list.next); > + > input_option_set_key(opt, key); > input_option_set_value(opt, value); _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
