From b308dd72d90d7464a4824ffd7d1284c7e046bbc4 Mon Sep 17 00:00:00 2001 From: Alfred Klomp Date: Mon, 14 Jul 2014 22:32:21 +0200 Subject: [PATCH] timing.c: avoid referencing garbage value Found with Clang's `scan-build` tool. When get_timer() is called with `reset` set to 1, the value of t->start.tv_sec is used as a rvalue without being initialized first. This is relatively harmless because the result of get_timer() is not used by the callers when called in "reset mode". However, scan-build prints a warning. Silence the warning by only calculating the delta on non-reset runs, returning zero otherwise. --- library/timing.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/library/timing.c b/library/timing.c index 6c1dfa46b1..19ccb9a3fc 100644 --- a/library/timing.c +++ b/library/timing.c @@ -283,15 +283,16 @@ unsigned long get_timer( struct hr_time *val, int reset ) gettimeofday( &offset, NULL ); - delta = ( offset.tv_sec - t->start.tv_sec ) * 1000 - + ( offset.tv_usec - t->start.tv_usec ) / 1000; - if( reset ) { t->start.tv_sec = offset.tv_sec; t->start.tv_usec = offset.tv_usec; + return( 0 ); } + delta = ( offset.tv_sec - t->start.tv_sec ) * 1000 + + ( offset.tv_usec - t->start.tv_usec ) / 1000; + return( delta ); }