James Hawkins wrote:
> Hi,
>
> Fix for bug 9809.
>
> Changelog:
> * Handle a few cases in FO_COPY that arise from not double-NULL
> terminating the input.
>
> dlls/shell32/shlfileop.c | 11 +++-
> dlls/shell32/tests/shlfileop.c | 122 ++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 130 insertions(+), 3 deletions(-)
>
>
>
> ------------------------------------------------------------------------
>
>
Hi James,
+ /* no double-NULL terminator for pTo */
+ memset(to, 'a', MAX_PATH);
+ lstrcpyA(to, "two.txt");
+ shfo.pFrom = "one.txt\0";
+ shfo.pTo = to;
+ shfo.fFlags = FOF_NOCONFIRMATION | FOF_SILENT | FOF_NOERRORUI;
+ retval = SHFileOperation(&shfo);
+ ok(retval == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", retval);
+ ok(DeleteFileA("one.txt"), "Expected file to exist\n");
+ ok(DeleteFileA("two.txt"), "Expected file to exist\n");
+
+ createTestFile("one.txt");
+
+ /* no FOF_MULTIDESTFILES, two files in pTo */
+ shfo.pFrom = "one.txt\0";
+ shfo.pTo = "two.txt\0three.txt\0";
+ shfo.fFlags = FOF_NOCONFIRMATION | FOF_SILENT | FOF_NOERRORUI;
+ retval = SHFileOperation(&shfo);
+ ok(retval == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", retval);
+ ok(DeleteFileA("one.txt"), "Expected file to exist\n");
+ ok(DeleteFileA("two.txt"), "Expected file to exist\n");
+
+ createTestFile("one.txt");
+
+ /* no double-NULL terminator for pTo */
+ memset(to, 'a', MAX_PATH);
+ lstrcpyA(to, "two.txt");
+ shfo.pFrom = "one.txt\0";
+ shfo.pTo = to;
+ shfo.fFlags = FOF_NOCONFIRMATION | FOF_SILENT | FOF_NOERRORUI;
+ retval = SHFileOperation(&shfo);
+ ok(retval == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", retval);
+ ok(DeleteFileA("one.txt"), "Expected file to exist\n");
+ ok(DeleteFileA("two.txt"), "Expected file to exist\n");
Isn't the last test the same as the first (in the above piece of code) ?
--
Cheers,
Paul.