[libvirt PATCH 10/11] vircommand: Remove NULL check in virCommandAddArg
Tim Wiederhake
twiederh at redhat.com
Thu Jan 28 14:21:28 UTC 2021
On Thu, 2021-01-28 at 11:54 +0100, Peter Krempa wrote:
> On Thu, Jan 28, 2021 at 11:24:40 +0100, Tim Wiederhake wrote:
> > `val` is declared `ATTRIBUTE_NONNULL`.
>
> Please see:
>
> https://gitlab.com/libvirt/libvirt/-/blob/master/src/internal.h#L127
>
> ATTRIBUTE_NONNULL is unfortunately lead to wrong optimizations done
> by
> gcc.
>
> > Found by clang-tidy's "clang-diagnostic-tautological-pointer-
> > compare"
> > check.
> >
> > Signed-off-by: Tim Wiederhake <twiederh at redhat.com>
> > ---
> > src/util/vircommand.c | 5 -----
> > 1 file changed, 5 deletions(-)
> >
> > diff --git a/src/util/vircommand.c b/src/util/vircommand.c
> > index c3a98bbeac..223010c6aa 100644
> > --- a/src/util/vircommand.c
> > +++ b/src/util/vircommand.c
> > @@ -1525,11 +1525,6 @@ virCommandAddArg(virCommandPtr cmd, const
> > char *val)
> > if (!cmd || cmd->has_error)
> > return;
> >
> > - if (val == NULL) {
> > - cmd->has_error = EINVAL;
> > - return;
> > - }
>
> So this might have actual value.
>
Hm, I see. I will remove this patch from the series for now. A bit
frustrating though, if you compare with, as a random example,
"virCommandGetGID", which is declared in [1] as "ATTRIBUTE_NONNULL" for
argument "cmd", which is subsequently dereferenced without additional
NULL check in [2].
Cheers,
Tim
[1]
https://gitlab.com/libvirt/libvirt/-/blob/master/src/util/vircommand.h#L71
[2]
https://gitlab.com/libvirt/libvirt/-/blob/master/src/util/vircommand.c#L1116
More information about the libvir-list
mailing list