Commit 8b440753 authored by Mark Andrews's avatar Mark Andrews Committed by Evan Hunt
Browse files

[master] address overflow in retry backoff

4877.	[bug]		Address integer overflow when exponentially
			backing off retry intervals. [RT #47041]
parent b575c4ec
4877. [bug] Address integer overflow when exponentially
backing off retry intervals. [RT #47041]
4876. [bug] Address deadlock with accessing a keytable. [RT #47000] 4876. [bug] Address deadlock with accessing a keytable. [RT #47000]
   
4875. [bug] Address compile failures on older systems. [RT #47015] 4875. [bug] Address compile failures on older systems. [RT #47015]
......
...@@ -1810,8 +1810,12 @@ fctx_setretryinterval(fetchctx_t *fctx, unsigned int rtt) { ...@@ -1810,8 +1810,12 @@ fctx_setretryinterval(fetchctx_t *fctx, unsigned int rtt) {
/* /*
* Exponential backoff after the first few tries. * Exponential backoff after the first few tries.
*/ */
if (fctx->restarts > fctx->res->nonbackofftries) if (fctx->restarts > fctx->res->nonbackofftries) {
us <<= (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 * 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