On 26 January 2015 at 14:48, Mike Holmes <[email protected]> wrote:
>
>
> On 16 January 2015 at 12:05, Ola Liljedahl <[email protected]> wrote:
>>
>> Don't dereference pointer after successful check for NULL as this makes
>> Coverity
>> complain. (Coverity CID 85397,
>> https://bugs.linaro.org/show_bug.cgi?id=1056)
>>
>> Signed-off-by: Ola Liljedahl <[email protected]>
>> ---
>> (This document/code contribution attached is provided under the terms of
>> agreement LES-LTM-21309)
>>
>>  test/validation/odp_timer.c | 20 +++++++++++---------
>>  1 file changed, 11 insertions(+), 9 deletions(-)
>>
>> diff --git a/test/validation/odp_timer.c b/test/validation/odp_timer.c
>> index dca01ce..5ba1b84 100644
>> --- a/test/validation/odp_timer.c
>> +++ b/test/validation/odp_timer.c
>> @@ -69,23 +69,23 @@ static void handle_tmo(odp_buffer_t buf, bool stale,
>> uint64_t prev_tick)
>>         if (ttp == NULL)
>>                 CU_FAIL("odp_timeout_user_ptr() null user ptr");
>
>
> If you use CU_FAIL_FATAL  or CU_ASSERT_PTR_NOT_NULL_FATAL here, it will
> abort the test and you wont need to test for null in the following cases.
> http://cunit.sourceforge.net/doc/writing_tests.html#assertions
Yes but this error is not a fatal error. I want the validation to
continue even if the timer implementation returns a bogus user
pointer.

>
>>
>>
>> -       if (ttp->buf2 != buf)
>> +       if (ttp != NULL && ttp->buf2 != buf)
>>                 CU_FAIL("odp_timeout_user_ptr() wrong user ptr");
>> -       if (ttp->tim != tim)
>> +       if (ttp != NULL && ttp->tim != tim)
>>                 CU_FAIL("odp_timeout_timer() wrong timer");
>>         if (stale) {
>>                 if (odp_timeout_fresh(tmo))
>>                         CU_FAIL("Wrong status (fresh) for stale timeout");
>>                 /* Stale timeout => local timer must have invalid tick */
>> -               if (ttp->tick != TICK_INVALID)
>> +               if (ttp != NULL && ttp->tick != TICK_INVALID)
>>                         CU_FAIL("Stale timeout for active timer");
>>         } else {
>>                 if (!odp_timeout_fresh(tmo))
>>                         CU_FAIL("Wrong status (stale) for fresh timeout");
>>                 /* Fresh timeout => local timer must have matching tick */
>> -               if (ttp->tick != tick) {
>> -                       printf("Wrong tick: expected %"PRIu64" actual
>> %"PRIu64"\n",
>> -                              ttp->tick, tick);
>> +               if (ttp != NULL && ttp->tick != tick) {
>> +                       LOG_DBG("Wrong tick: expected %"PRIu64" actual
>> %"PRIu64"\n",
>> +                               ttp->tick, tick);
>>                         CU_FAIL("odp_timeout_tick() wrong tick");
>>                 }
>>                 /* Check that timeout was delivered 'timely' */
>> @@ -99,9 +99,11 @@ static void handle_tmo(odp_buffer_t buf, bool stale,
>> uint64_t prev_tick)
>>                 }
>>         }
>>
>> -       /* Use assert() for correctness check of test program itself */
>> -       assert(ttp->buf == ODP_BUFFER_INVALID);
>> -       ttp->buf = buf;
>> +       if (ttp != NULL) {
>> +               /* Internal error */
>> +               CU_ASSERT_FATAL(ttp->buf == ODP_BUFFER_INVALID);
>> +               ttp->buf = buf;
>> +       }
>>  }
>>
>>  /* @private Worker thread entrypoint which performs timer
>> alloc/set/cancel/free
>> --
>> 1.9.1
>>
>>
>> _______________________________________________
>> lng-odp mailing list
>> [email protected]
>> http://lists.linaro.org/mailman/listinfo/lng-odp
>
>
>
>
> --
> Mike Holmes
> Linaro  Sr Technical Manager
> LNG - ODP

_______________________________________________
lng-odp mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to