4877. [bug] Address integer overflow when exponentially
backing off retry intervals. [RT #47041]
+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]
/*
* 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