DescriptionFixed a crash with some HP printer drivers (when invoking PTGetPrintCapabilities on them).
Detailed story:
Calls to XPS APIs typically require the XPS provider to be opened with
PTOpenProvider. PTOpenProvider calls CoInitializeEx with
COINIT_MULTITHREADED. We have seen certain buggy HP printer driver DLLs
that call CoInitializeEx with COINIT_APARTMENTTHREADED in the context of
PTGetPrintCapabilities. This call fails but the printer driver calls
CoUninitialize anyway. This results in the apartment being torn down too
early and the msxml DLL being unloaded which in turn causes code in
unidrvui.dll to have a dangling pointer to an XML document which causes a
crash. To protect ourselves from such drivers we make sure we always have
an extra CoInitialize (calls to CoInitialize/CoUninitialize are
refcounted).
BUG=None
TEST=Test Cloud Print Proxy on Windows with HP Photosmart 7960 series printers.
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=70754
Patch Set 1 #
Messages
Total messages: 2 (0 generated)
|