Uploaded image for project: 'ROOT'
  1. ROOT
  2. ROOT-7927

TPluginHandler::CheckForExecPlugin is not thread safe

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Medium
    • Resolution: Fixed
    • Affects Version/s: 6.06/00
    • Fix Version/s: 6.06/02
    • Component/s: Core Libraries
    • Labels:
      None
    • Environment:

      All

      Description

      If multiple threads are calling TFile::Open and the URL in question requires loading of a plugin a race condition happens and you can get back a bad plugin resulting in the TFile::Open call returning a null pointer even for a file that does exist.

      The problem appears to be in the setup during the call TPluginHandler::CheckForExecPlugin

      268	   if (!fCallEnv && !fCanCall)
      269	      SetupCallEnv();
      270	
      271	   if (fCanCall == -1)
      272	      return kFALSE;

        Attachments

          Activity

            People

            • Assignee:
              pcanal Philippe Canal
              Reporter:
              chrjones Christopher Jones
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:
                Actual End: