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 (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

Reply via email to