On 02/15/2013 08:12 AM, John Ferlan wrote:
On 02/15/2013 08:54 AM, Peter Krempa wrote:
> On 02/15/13 14:17, Eric Blake wrote:
>> On 02/15/2013 02:01 AM, Peter Krempa wrote:
>>
>>>> So, one could logically believe the check could change to:
>>>>
>>>> sa_assert(fd == -1 || (fd >= 3 && fd <= 8));
>>
>> Yes, I like that.
>
> If I understood it correctly, the above condition won't shut up
> coverity, only sa_assert(fd == -1) does as coverity then thinks that fd
> was > 8 and thus closed. Otherwise it does not detect the magic we're
> doing later.
Yes, correct, hence the need for the "/* coverity[overwrite_var] */ tag.
If you're using the /* coverity[overwrite_var] */ tag, then do we still
need the sa_assert? This is one case where leaving comments to shut up
coverity is fair game, because it is a test program, and because we
already know we are doing some unusual games with fds to get into a
known state.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org