diff options
author | Andres Freund <andres@anarazel.de> | 2015-01-04 15:44:49 +0100 |
---|---|---|
committer | Andres Freund <andres@anarazel.de> | 2015-01-04 15:55:00 +0100 |
commit | 6f9b84a4016b4da2275af10465119e7d50638bd2 (patch) | |
tree | 95a22e77e5ba66315754a765c4bae30ed318d3e3 | |
parent | 029e41afd2930bfabbbc6a1b7d3bf7b21455f150 (diff) |
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.
-rw-r--r-- | contrib/pg_test_timing/pg_test_timing.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/contrib/pg_test_timing/pg_test_timing.c b/contrib/pg_test_timing/pg_test_timing.c index b3f98abe5cb..6bf4e880af2 100644 --- a/contrib/pg_test_timing/pg_test_timing.c +++ b/contrib/pg_test_timing/pg_test_timing.c @@ -115,7 +115,7 @@ test_timing(int32 duration) static int64 histogram[32]; char buf[100]; - total_time = duration > 0 ? duration * 1000000 : 0; + total_time = duration > 0 ? duration * INT64CONST(1000000) : 0; INSTR_TIME_SET_CURRENT(start_time); cur = INSTR_TIME_GET_MICROSEC(start_time); |