(Internal git) Commit c31d1f3f363a5c3b6dbd4d6daa36fa0f4273e948 "a64: fix deadlock in ia64 sysptrace" moved ptracecheckattach() from findthreadforaddr() to tasklist-is-not-held area. However it introduced other problems.
In the likely case, when rbschild == child, ptracecheckattach() is never called. Otherwise we do ptracecheckattach(rbschild) twice. This means that any peek/poke request can silently fail and fool the tracer.
With this patch the logic is ptracecheckattach(child);
if (rbschild != child) { // we should use rbschild ... if (!ptracecheckattach(rbschild)) child = rbschild;
// but if checkattach() fails we continue to // use child, we are doing as well as we can. }
To simplify the error-handling and the logic, this patch changes the code to detect the likely rbschild == child case earlier, right after findthreadforaddr().
This only affects Red Hat Enterprise Linux 4.
Sun Sun Ray Server Software 3.x and 4.0 and Sun Ray Windows Connector 1.1 and 2.0 expose the LDAP password during a configuration step, which allows local users to discover the Sun Ray administration password, and obtain admin access to the Data Store and Administration GUI, via unspecified vectors related to the utconfig component of the Server Software and the uttscadm component of the Windows Connector.