Details
-
Bug
-
Resolution: Unresolved
-
Not Evaluated
-
None
-
No Version
-
None
Description
QtSoap library contains two class functions that return non-const references into local static variables, which types aren't thread-safe. Namely, these are "static QtSoapNamespaces& QtSoapNamespaces::instance()" and " static QtSoapTypeFactory& QtSoapFactory::instance()". Since both of the referenced objects are used read-write, the library cannot be used in a threaded environment at all. For instance, the issue becomes apparent if you consider a situation where two or more threads create instances of QtSoapMessage type. In essence, the underlying QMap (not thread-safe) will be accessed and modified by the threads simultaneously.