From: Vijay Kiran Kamuju Subject: [PATCH 2/4] setupapi: Fix CabinetName passed to SPFILENOTIFY_CABINETINFO handler. Message-Id: Date: Thu, 2 Jul 2020 17:39:50 +0200 Signed-off-by: Vijay Kiran Kamuju From c70118634de79db99ccc083fa7502313291c8435 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Tue, 2 May 2017 00:48:45 +0200 Subject: [PATCH 2/4] setupapi: Fix CabinetName passed to SPFILENOTIFY_CABINETINFO handler. Signed-off-by: Vijay Kiran Kamuju --- dlls/setupapi/setupcab.c | 4 ++-- dlls/setupapi/tests/setupcab.c | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/dlls/setupapi/setupcab.c b/dlls/setupapi/setupcab.c index b9783b8135..431d3500cc 100644 --- a/dlls/setupapi/setupcab.c +++ b/dlls/setupapi/setupcab.c @@ -296,7 +296,7 @@ static INT_PTR CDECL sc_FNNOTIFY_A(FDINOTIFICATIONTYPE fdint, PFDINOTIFICATION p TRACE(" Cabinet Set#: %d\n", pfdin->setID); TRACE(" Cabinet Cab#: %d\n", pfdin->iCabinet); */ WARN("SPFILENOTIFY_CABINETINFO undocumented: guess implementation.\n"); - ci.CabinetFile = phsc->most_recent_cabinet_name; + ci.CabinetFile = ""; ci.CabinetPath = pfdin->psz3; ci.DiskName = pfdin->psz2; ci.SetId = pfdin->setID; @@ -422,7 +422,7 @@ static INT_PTR CDECL sc_FNNOTIFY_W(FDINOTIFICATIONTYPE fdint, PFDINOTIFICATION p TRACE(" Cabinet Set#: %d\n", pfdin->setID); TRACE(" Cabinet Cab#: %d\n", pfdin->iCabinet); */ WARN("SPFILENOTIFY_CABINETINFO undocumented: guess implementation.\n"); - ci.CabinetFile = phsc->most_recent_cabinet_name; + ci.CabinetFile = L""; len = 1 + MultiByteToWideChar(CP_ACP, 0, pfdin->psz3, -1, buf, MAX_PATH); if ((len > MAX_PATH) || (len <= 1)) buf[0] = '\0'; diff --git a/dlls/setupapi/tests/setupcab.c b/dlls/setupapi/tests/setupcab.c index 37254aa962..384e04c467 100644 --- a/dlls/setupapi/tests/setupcab.c +++ b/dlls/setupapi/tests/setupcab.c @@ -314,8 +314,15 @@ static UINT CALLBACK simple_callbackA(PVOID Context, UINT Notification, switch (Notification) { case SPFILENOTIFY_CABINETINFO: + { + CABINET_INFO_A *info = (CABINET_INFO_A *)Param1; + + ok(!strcmp(info->CabinetFile, ""), + "Expected empty CabinetFile, got \"%s\"\n", info->CabinetFile); + index = 0; return NO_ERROR; + } case SPFILENOTIFY_FILEINCABINET: { FILE_IN_CABINET_INFO_A *info = (FILE_IN_CABINET_INFO_A *)Param1; @@ -386,8 +393,15 @@ static UINT CALLBACK simple_callbackW(PVOID Context, UINT Notification, switch (Notification) { case SPFILENOTIFY_CABINETINFO: + { + CABINET_INFO_W *info = (CABINET_INFO_W *)Param1; + + ok(!lstrcmpW(info->CabinetFile, L""), + "Expected empty CabinetFile, got %s\n", wine_dbgstr_w(info->CabinetFile)); + index = 0; return NO_ERROR; + } case SPFILENOTIFY_FILEINCABINET: { FILE_IN_CABINET_INFO_W *info = (FILE_IN_CABINET_INFO_W *)Param1; -- 2.27.0