Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
m48t59-test: avoid possible overflow on ABS
Originally meant to avoid a shadowed variable "s", which was fixed by
renaming the outer declaration to "qts".  Avoid the chance of an overflow
in the computation of ABS(t - s).

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
  • Loading branch information
bonzini committed Sep 26, 2023
1 parent 973d3ea commit 168d467
Showing 1 changed file with 10 additions and 7 deletions.
17 changes: 10 additions & 7 deletions tests/qtest/m48t59-test.c
Expand Up @@ -192,19 +192,22 @@ static void bcd_check_time(void)
}

if (!(tm_cmp(&start, datep) <= 0 && tm_cmp(datep, &end) <= 0)) {
long t, s;
long date_s, start_s;
unsigned long diff;

start.tm_isdst = datep->tm_isdst;

t = (long)mktime(datep);
s = (long)mktime(&start);
if (t < s) {
g_test_message("RTC is %ld second(s) behind wall-clock", (s - t));
date_s = (long)mktime(datep);
start_s = (long)mktime(&start);
if (date_s < start_s) {
diff = start_s - date_s;
g_test_message("RTC is %ld second(s) behind wall-clock", diff);
} else {
g_test_message("RTC is %ld second(s) ahead of wall-clock", (t - s));
diff = date_s - start_s;
g_test_message("RTC is %ld second(s) ahead of wall-clock", diff);
}

g_assert_cmpint(ABS(t - s), <=, wiggle);
g_assert_cmpint(diff, <=, wiggle);
}

qtest_quit(qts);
Expand Down

0 comments on commit 168d467

Please sign in to comment.