https://bugs.openldap.org/show_bug.cgi?id=9947

          Issue ID: 9947
           Summary: Race in epoch.c
           Product: OpenLDAP
           Version: unspecified
          Hardware: All
                OS: All
            Status: UNCONFIRMED
          Keywords: needs_review
          Severity: normal
          Priority: ---
         Component: lloadd
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: ---

When epoch_leave() tests whether other threads might still be alive, it can
test things in reverse order, testing too early to catch a thread to come in
and too late to see a thread that just left. If those two saw each other, the
clock would not advance and the data in refs might actually still be a
reachable pointer.

The tests in epoch_leave can actually be simplified leading to machine code not
all compilers could figure out by themselves.

-- 
You are receiving this mail because:
You are on the CC list for the issue.

Reply via email to