Commit 67b1e547 authored by Evan Hunt's avatar Evan Hunt
Browse files

[v9_12] address overflow in retry backoff

4877.	[bug]		Address integer overflow when exponentially
			backing off retry intervals. [RT #47041]

(cherry picked from commit 8b440753)
parent c34b3b98
4877. [bug] Address integer overflow when exponentially
backing off retry intervals. [RT #47041]
4876. [bug] Address deadlock with accessing a keytable. [RT #47000]
 
4875. [bug] Address compile failures on older systems. [RT #47015]
......
......@@ -1810,8 +1810,12 @@ fctx_setretryinterval(fetchctx_t *fctx, unsigned int rtt) {
/*
* Exponential backoff after the first few tries.
*/
if (fctx->restarts > fctx->res->nonbackofftries)
us <<= (fctx->restarts - fctx->res->nonbackofftries);
if (fctx->restarts > fctx->res->nonbackofftries) {
int shift = fctx->restarts - fctx->res->nonbackofftries;
if (shift > 6)
shift = 6;
us <<= shift;
}
/*
* Add a fudge factor to the expected rtt based on the current
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment