Giving in to Coverity (was: cvs commit:
src/sys/netgraph/bluetooth/l2cap ng_l2cap_cmds.c)
Alexander Leidinger
Alexander at Leidinger.net
Mon Apr 2 07:32:48 UTC 2007
Quoting Greg 'groggy' Lehey <grog at FreeBSD.org> (from Mon, 2 Apr 2007
13:56:00 +0930):
> On Thursday, 29 March 2007 at 13:36:31 +0200, Alexander Leidinger wrote:
>> Quoting Andrew Thompson <thompsa at freebsd.org> (from Thu, 29 Mar 2007
>> 13:52:12 +1200):
>>
>>> On Thu, Mar 29, 2007 at 10:58:34AM +0930, Greg 'groggy' Lehey wrote:
>>>> On Wednesday, 28 March 2007 at 21:25:56 +0000, Maksim Yevmenkin wrote:
>>>>> emax 2007-03-28 21:25:56 UTC
>>>>>
>>>>> FreeBSD src repository
>>>>>
>>>>> Modified files:
>>>>> sys/netgraph/bluetooth/l2cap ng_l2cap_cmds.c
>>>>> Log:
>>>>> Try to silence Coverity by adding (void) in front of function call.
>>>>> Also add a comment, explaining why return value is not being checked.
>>>>
>>>> I hope Coverity isn't going to force us to add unnecessary casts to
>>>> function calls.
>>>
>>> Well no, you can always silence Coverity by just marking it as a false
>>> bug.
>>
>> Maxim and me discussed this briefly before this commit.
>>
>> ...
>>
>> The cast does not obfuscate the code, doesn't make it harder to read ...
>
> I've dropped the rest of your argumentation, because I don't disagree
> with it, but I do think that unnecessary casts cause (minor)
> obfuscation and make it (fractionally) more difficult to read.
>
> My concern is that we shouldn't compromise our style because of bugs
> in program checkers. I understand that there are alternatives, like
> flagging it for Coverity as "OK", and I'd expect that to be the
> preferable solution. But I'm not the guardian of style, so I'll let
> others decide on this if they care.
There are several cases where Coverity gets something wrong (e.g. the
use of TAILQ). I did mark those as invalid in Coverity (until either
we get a new version of Coverity which understands this, or someone
writes a model of the TAILQ stuff for Coverity, or until someone tells
me to mark them as false positives). I did this because I don't know
how to fix this in our code _and_ I see no benefit in fixing this in
our code just to make Coverity not moan. For the void cast we are
talking about I see a benefit. Coverity can count this as "the return
value of this function is checked". As such a report is only generated
if a specific percentage of the use of a function is handled this way,
it is important if we want to get reports for this. And we want to get
reports for functions where the return value typically has to be
checked.
Bye,
Alexander.
--
Marriage is learning about women the hard way.
http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7
http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137
More information about the cvs-src
mailing list