Nikolay Sivov : shlwapi: Fix Stat() method for file streams.

Alexandre Julliard julliard at winehq.org
Mon Sep 3 16:26:09 CDT 2018


Module: wine
Branch: master
Commit: c8175e6c7a73d1c510fe2285f74e6bcf808c9fe2
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=c8175e6c7a73d1c510fe2285f74e6bcf808c9fe2

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Mon Sep  3 07:20:11 2018 +0300

shlwapi: Fix Stat() method for file streams.

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/shlwapi/istream.c       |  2 +-
 dlls/shlwapi/tests/istream.c | 12 ++++++++++++
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/dlls/shlwapi/istream.c b/dlls/shlwapi/istream.c
index 623232a..a77ed8a 100644
--- a/dlls/shlwapi/istream.c
+++ b/dlls/shlwapi/istream.c
@@ -306,7 +306,7 @@ static HRESULT WINAPI IStream_fnStat(IStream *iface, STATSTG* lpStat,
 
     TRACE("(%p,%p,%d)\n", This, lpStat, grfStatFlag);
 
-    if (!grfStatFlag)
+    if (!lpStat)
         return STG_E_INVALIDPOINTER;
 
     memset(&fi, 0, sizeof(fi));
diff --git a/dlls/shlwapi/tests/istream.c b/dlls/shlwapi/tests/istream.c
index f1854a2..7d0cd61 100644
--- a/dlls/shlwapi/tests/istream.c
+++ b/dlls/shlwapi/tests/istream.c
@@ -191,6 +191,7 @@ static void test_stream_read_write(IStream *stream, DWORD mode)
     HRESULT ret;
     unsigned char buf[16];
     DWORD written, count;
+    STATSTG statstg;
 
     /* IStream_Read/Write from the COBJMACROS is undefined by shlwapi.h */
 
@@ -245,6 +246,17 @@ static void test_stream_read_write(IStream *stream, DWORD mode)
     ok(count == written, "expected %u, got %u\n", written, count);
     if (count)
         ok(buf[0] == 0x5e && buf[1] == 0xa7, "expected 5ea7, got %02x%02x\n", buf[0], buf[1]);
+
+    memset(&statstg, 0xff, sizeof(statstg));
+    ret = IStream_Stat(stream, &statstg, 0);
+    ok(ret == S_OK, "Stat failed, hr %#x.\n", ret);
+    ok(statstg.pwcsName != NULL, "Unexpected name %s.\n", wine_dbgstr_w(statstg.pwcsName));
+    CoTaskMemFree(statstg.pwcsName);
+
+    memset(&statstg, 0xff, sizeof(statstg));
+    ret = IStream_Stat(stream, &statstg, STATFLAG_NONAME);
+    ok(ret == S_OK, "Stat failed, hr %#x.\n", ret);
+    ok(statstg.pwcsName == NULL, "Unexpected name %s.\n", wine_dbgstr_w(statstg.pwcsName));
 }
 
 static void test_stream_qi(IStream *stream)




More information about the wine-cvs mailing list