#50637 Ticket 50636 - Crash during sasl bind
Closed 15 days ago by spichugi. Opened a year ago by tbordaz.
tbordaz/389-ds-base ticket_50636  into  master

@@ -1576,12 +1576,15 @@ 


                      pb_conn->c_anonlimits_set = 1;


-                 pthread_mutex_unlock(&(pb_conn->c_mutex));


+                 /* must hold c_mutex so that it synchronizes the IO layer push

+                  * with a potential pending sasl bind that is registering the IO layer

+                  */

                  if (connection_call_io_layer_callbacks(pb_conn)) {

                      slapi_log_err(SLAPI_LOG_ERR, "connection_threadmain",

                                    "Could not add/remove IO layers from connection\n");


+                 pthread_mutex_unlock(&(pb_conn->c_mutex));




Bug Description:
Sasl bind registers IO layers (sasl_IoMethods) that will be
pushed (and called) by the next incoming operation.
So the next incoming operation should synchronize itself
with the sasl bind.

Fix Description:
The call to connection_call_io_layer_callbacks, that pushes
registered methods, must hold c_mutex so that it let
a pending sasl bind to fully register the methods.


Reviewed by: Ludwig Krispenz

Platforms tested: F28

Flag Day: no

Doc impact: no

rebased onto 52f2b0d

a year ago

Pull-Request has been merged by tbordaz

a year ago

389-ds-base is moving from Pagure to Github. This means that new issues and pull requests
will be accepted only in 389-ds-base's github repository.

This pull request has been cloned to Github as issue and is available here:
- https://github.com/389ds/389-ds-base/issues/3692

If you want to continue to work on the PR, please navigate to the github issue,
download the patch from the attachments and file a new pull request.

Thank you for understanding. We apologize for all inconvenience.

Pull-Request has been closed by spichugi

15 days ago