winspool.drv: Do not try to check the registry if opening the printer fails (valgrind)
Bruno Jesus
00cpxxx at gmail.com
Thu May 29 20:04:56 CDT 2014
If opening the printer fails we will not have the key required for the
registry function.
For bug https://bugs.winehq.org/show_bug.cgi?id=36604
-------------- next part --------------
diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c
index e33b257..bfb22cb 100644
--- a/dlls/winspool.drv/info.c
+++ b/dlls/winspool.drv/info.c
@@ -2530,6 +2530,7 @@ BOOL WINAPI OpenPrinterA(LPSTR lpPrinterName,HANDLE *phPrinter,
*/
BOOL WINAPI OpenPrinterW(LPWSTR lpPrinterName,HANDLE *phPrinter, LPPRINTER_DEFAULTSW pDefault)
{
+ HKEY key;
TRACE("(%s, %p, %p)\n", debugstr_w(lpPrinterName), phPrinter, pDefault);
@@ -2542,12 +2543,10 @@ BOOL WINAPI OpenPrinterW(LPWSTR lpPrinterName,HANDLE *phPrinter, LPPRINTER_DEFAU
/* Get the unique handle of the printer or Printserver */
*phPrinter = get_opened_printer_entry(lpPrinterName, pDefault);
- if (*phPrinter)
+ if (*phPrinter && WINSPOOL_GetOpenedPrinterRegKey( *phPrinter, &key ) == ERROR_SUCCESS)
{
- HKEY key;
DWORD deleting = 0, size = sizeof( deleting ), type;
DWORD status;
- WINSPOOL_GetOpenedPrinterRegKey( *phPrinter, &key );
RegQueryValueExW( key, May_Delete_Value, NULL, &type, (LPBYTE)&deleting, &size );
WaitForSingleObject( init_mutex, INFINITE );
status = get_dword_from_reg( key, StatusW );
More information about the wine-patches
mailing list