Skip to content

Commit a68b8ae

Browse files
committed
Correctly handle test durations of more than 2147s in pg_test_timing.
Previously the computation of the total test duration, measured in microseconds, accidentally overflowed due to accidentally using signed 32bit arithmetic. As the only consequence is that pg_test_timing invocations with such, overly large, durations never finished the practical consequences of this bug are minor. Pointed out by Coverity. Backpatch to 9.2 where pg_test_timing was added.
1 parent f0e2770 commit a68b8ae

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

contrib/pg_test_timing/pg_test_timing.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ test_timing(int32 duration)
116116
end_time,
117117
temp;
118118

119-
total_time = duration > 0 ? duration * 1000000 : 0;
119+
total_time = duration > 0 ? duration * INT64CONST(1000000) : 0;
120120

121121
INSTR_TIME_SET_CURRENT(start_time);
122122
cur = INSTR_TIME_GET_MICROSEC(start_time);

0 commit comments

Comments
 (0)