[Spice-devel] [spice-server PATCH 2/3] test-loop: increment a variable outside of spice_assert

Frediano Ziglio fziglio at redhat.com
Sun Aug 11 16:38:23 UTC 2019


> 
> On 8/11/19 2:56 PM, Frediano Ziglio wrote:
> >>
> >> spice_assert is a macro and it may be that variable will
> >> be incremented twice (in theory, possibly not in practice).
> >>
> > 
> > No, the issue is that Coverity assume that code can be stripped out
> > as usually assert can be stripped out (defining NDEBUG for normal
> > assert).
> 
> You are correct that this is what the covscan complains about:
> "The containing function might work differently in a non-debug build."
> 
> But spice_assert definition does not depend on NDEBUG.
> On the other hand it does not happen in reality that
> the variable is incremented twice.
> 
> I'll change the above comment to say
>    spice_assert is a macro so prevent side-effects by
>    not changing the variable in it.
> 

Why not telling the truth? That is to remove a Coverity false
positive specifying which one?

> Uri.
> 
> > 
> >> Simply do it one line above.
> >>
> >> Found by covscan
> >>
> >> Signed-off-by: Uri Lublin <uril at redhat.com>
> 
> 
> > 
> > Beside the commit message no complains to make Coverity happy
> > 
> >> ---
> >>   server/tests/test-loop.c | 3 ++-
> >>   1 file changed, 2 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/server/tests/test-loop.c b/server/tests/test-loop.c
> >> index 82af80ab3..4df3a7d20 100644
> >> --- a/server/tests/test-loop.c
> >> +++ b/server/tests/test-loop.c
> >> @@ -78,7 +78,8 @@ static SpiceTimer *twice_timers_remove[2] = { NULL, NULL
> >> };
> >>   static int twice_remove_called = 0;
> >>   static void timer_not_twice_remove(void *opaque)
> >>   {
> >> -    spice_assert(++twice_remove_called == 1);
> >> +    ++twice_remove_called;
> >> +    spice_assert(twice_remove_called == 1);
> >>   
> >>       /* delete timers, should not have another call */
> >>       core->timer_remove(twice_timers_remove[0]);
> > 
> > Frediano
> > 
> 
> 


More information about the Spice-devel mailing list