Report information
The Basics
Id:
42188
Status:
open
Priority:
Medium/Medium
Queue:

People
Requestors:
Cc:
AdminCc:

BugTracker
Version Fixed:
(no value)
Version Found:
(no value)
Versions Affected:
(no value)
Versions Planned:
(no value)
Priority:
P2 Normal
Severity:
S1 High
CVSS Score:
(no value)
CVE ID:
(no value)
Component:
BIND Server
Area:
bug

Dates
Created:Wed, 20 Apr 2016 06:00:21 -0400
Updated:Mon, 26 Jun 2017 19:48:40 -0400
Closed:Not set



This bug tracker is no longer active.

Please go to our Gitlab to submit issues (both feature requests and bug reports) for active projects maintained by Internet Systems Consortium (ISC).

Due to security and confidentiality requirements, full access is limited to the primary maintainers.

Subject: Race in adaptive rwlock code
There's a race in the adaptive rwlock implementation in read and update of rwl->spins.
On Wed Apr 20 10:00:21 2016, muks wrote: > There's a race in the adaptive rwlock implementation in read and > update of rwl->spins. The new code seems to use ISC_PLATFORM_BUSYWAITNOP which seems to be defined as "rep; nop" for x86 and x86_64. rep is an instruction prefix that repeats the next instruction ecx times, decrementing ecx at each step. So ecx ought to be set to some deterministic value for it (what is its value here?). Also it clobbers ecx here.. is that fine?
On Wed Apr 20 11:02:30 2016, muks wrote: > On Wed Apr 20 10:00:21 2016, muks wrote: > > There's a race in the adaptive rwlock implementation in read and > > update of rwl->spins. > > The new code seems to use ISC_PLATFORM_BUSYWAITNOP which seems to be > defined as "rep; nop" for x86 and x86_64. > > rep is an instruction prefix that repeats the next instruction ecx > times, decrementing ecx at each step. So ecx ought to be set to some > deterministic value for it (what is its value here?). Also it clobbers > ecx here.. is that fine? Francis pointed out that the rep prefix does not apply to the nop instruction - the opcode sequence is used as the "pause" instruction. So this part of the bug report is bogus. The part about the race condition in rwl->spins still exists.