setupapi: [1/2] Avoid crash in SetupCloseInfFile

Detlef Riekenberg wine.dev at web.de
Mon Jul 9 12:49:11 CDT 2007


The Adobe Postscript Printer Driver Installer crashed in wine
on SetupCloseInfFile(INVALID_HANDLE_VALUE)


Changelog:
setupapi: Avoid crash in SetupCloseInfFile

(Part of Bug 5734)


-- 
 
By by ... Detlef

-------------- next part --------------
>From a5b690825ee67ade38a4732bb58f02802638d86d Mon Sep 17 00:00:00 2001
From: Detlef Riekenberg <wine.dev at web.de>
Date: Mon, 9 Jul 2007 19:31:23 +0200
Subject: [PATCH] setupapi: Avoid crash in SetupCloseInfFile
---
 dlls/setupapi/parser.c       |    2 +-
 dlls/setupapi/tests/parser.c |    5 +++++
 2 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/dlls/setupapi/parser.c b/dlls/setupapi/parser.c
index 6ddc1f2..dfe8212 100644
--- a/dlls/setupapi/parser.c
+++ b/dlls/setupapi/parser.c
@@ -1231,7 +1231,7 @@ void WINAPI SetupCloseInfFile( HINF hinf
     struct inf_file *file = hinf;
     unsigned int i;
 
-    if (!file) return;
+    if (!file || (file == INVALID_HANDLE_VALUE)) return;
 
     for (i = 0; i < file->nb_sections; i++) HeapFree( GetProcessHeap(), 0, file->sections[i] );
     HeapFree( GetProcessHeap(), 0, file->filename );
diff --git a/dlls/setupapi/tests/parser.c b/dlls/setupapi/tests/parser.c
index 2bb493e..2585f6d 100644
--- a/dlls/setupapi/tests/parser.c
+++ b/dlls/setupapi/tests/parser.c
@@ -405,6 +405,11 @@ static void test_close_inf_file(void)
     SetLastError(0xdeadbeef);
     SetupCloseInfFile(NULL);
     ok(GetLastError() == 0xdeadbeef, "Expected 0xdeadbeef, got %u\n", GetLastError());
+
+    SetLastError(0xdeadbeef);
+    SetupCloseInfFile(INVALID_HANDLE_VALUE);
+    ok(GetLastError() == 0xdeadbeef, "Expected 0xdeadbeef, got %u\n", GetLastError());
+
 }
 
 static const char *contents = "[Version]\n"
-- 
1.4.1



More information about the wine-patches mailing list