From: Akihiro Sagawa Subject: [3/3] shell32: Skip buffer allocation when querying drop file numbers. Message-Id: <20150602012157.D150.375B48EC@gmail.com> Date: Tue, 02 Jun 2015 01:22:08 +0900 Fixes bug 38664. --- dlls/shell32/shellole.c | 4 ++-- dlls/shell32/tests/shellole.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dlls/shell32/shellole.c b/dlls/shell32/shellole.c index 74c5965..637a101 100644 --- a/dlls/shell32/shellole.c +++ b/dlls/shell32/shellole.c @@ -578,7 +578,7 @@ UINT WINAPI DragQueryFileA( if(lpDropFileStruct->fWide) { LPWSTR lpszFileW = NULL; - if(lpszFile) { + if(lpszFile && lFile != 0xFFFFFFFF) { lpszFileW = HeapAlloc(GetProcessHeap(), 0, lLength*sizeof(WCHAR)); if(lpszFileW == NULL) { goto end; @@ -633,7 +633,7 @@ UINT WINAPI DragQueryFileW( if(lpDropFileStruct->fWide == FALSE) { LPSTR lpszFileA = NULL; - if(lpszwFile) { + if(lpszwFile && lFile != 0xFFFFFFFF) { lpszFileA = HeapAlloc(GetProcessHeap(), 0, lLength); if(lpszFileA == NULL) { goto end; diff --git a/dlls/shell32/tests/shellole.c b/dlls/shell32/tests/shellole.c index 96b34dc..b7f6344 100644 --- a/dlls/shell32/tests/shellole.c +++ b/dlls/shell32/tests/shellole.c @@ -760,7 +760,7 @@ static LRESULT WINAPI drop_window_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARA num = DragQueryFileA(hDrop, 0xffffffff, NULL, 0); ok(num == 1, "expected 1, got %u\n", num); num = DragQueryFileA(hDrop, 0xffffffff, (char*)0xdeadbeef, 0xffffffff); - todo_wine ok(num == 1, "expected 1, got %u\n", num); + ok(num == 1, "expected 1, got %u\n", num); num = DragQueryFileA(hDrop, 0, filename, sizeof(filename)); ok(num == strlen(DROPTEST_FILENAME), "expected %u, got %u\n", strlen(DROPTEST_FILENAME), num);