Skip to content
Snippets Groups Projects
Commit 6f9b84a4 authored by Andres Freund's avatar Andres Freund
Browse files

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.
parent 029e41af
No related branches found
No related tags found
No related merge requests found
...@@ -115,7 +115,7 @@ test_timing(int32 duration) ...@@ -115,7 +115,7 @@ test_timing(int32 duration)
static int64 histogram[32]; static int64 histogram[32];
char buf[100]; char buf[100];
total_time = duration > 0 ? duration * 1000000 : 0; total_time = duration > 0 ? duration * INT64CONST(1000000) : 0;
INSTR_TIME_SET_CURRENT(start_time); INSTR_TIME_SET_CURRENT(start_time);
cur = INSTR_TIME_GET_MICROSEC(start_time); cur = INSTR_TIME_GET_MICROSEC(start_time);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment