[libvirt] [PATCH] qemu: avoid dereference of null pointer
Alex Jia
ajia at redhat.com
Fri Aug 5 01:11:52 UTC 2011
On 08/05/2011 03:47 AM, Eric Blake wrote:
> On 08/04/2011 11:14 AM, Alex Jia wrote:
>>> Also, how does checking for a non-zero union value prevent a null
>>> dereference?
>>>
>> To be honest, I'm not sure this, however, it's okay for ccc-analyzer if
>> I add these judgements,
>
> Is ccc-analyzer different from clang? If so, how can I set it up, to
> reproduce the problem you saw?
It may be different, I will tidy up a docs or resource and then sending
to you.
Regards,
Alex
>
> I previously saw a false positive in one of these functions
> (qemudDomainGetMemoryParameters) when using Coverity, but that was
> fixed by commit f768b4c3, but Coverity was silent for the other 4
> functions you touched. I'm now trying to do a clang run to see if
> that differs from Coverity. The Coverity false positive was that our
> logic confused the static analyzers:
>
> type var; // uninit
> if (flags & _CONFIG)
> var = something
> if (flags & _LIVE)
> do something else
> if (flags & _CONFIG)
> use var
>
> this pattern was enough to make the analyzers think that var could be
> used uninitialized, or initialized to NULL, in a setting where it must
> not be NULL; but once you see that it is merely a case of the analyzer
> getting it wrong (var is _only_ used under the same conditions where
> it was previously assigned earlier on), the solution is to add
> sa_assert() hints to the analyzers.
>
> NACK to this patch; we need to get to the real root of why the
> analyzers are complaining, and fix the real bug if there is one (but I
> didn't see one in my manual inspection), or more likely add
> sa_assert() hints to silence the analyzer.
>
More information about the libvir-list
mailing list