Removed patch to fix handling of subdirectory in FtpFindFirstFile (accepted upstream).

This commit is contained in:
Sebastian Lackner 2015-01-14 21:48:26 +01:00
parent 7c3eb20866
commit fce30bb8f1
5 changed files with 3 additions and 131 deletions

View File

@ -89,7 +89,7 @@ Included bug fixes and improvements
* Fix gray screen on startup introduced by pixelformat changes. ([Wine Bug #35975](https://bugs.winehq.org/show_bug.cgi?id=35975))
* Fix handling of empty section and key name for profile files. ([Wine Bug #8036](https://bugs.winehq.org/show_bug.cgi?id=8036))
* Fix handling of invert_y in DrawTextExW ([Wine Bug #22109](https://bugs.winehq.org/show_bug.cgi?id=22109))
* Fix handling of subdirectory in FtpFindFirstFile ([Wine Bug #16526](https://bugs.winehq.org/show_bug.cgi?id=16526))
* ~~Fix handling of subdirectory in FtpFindFirstFile~~ ([Wine Bug #16526](https://bugs.winehq.org/show_bug.cgi?id=16526))
* Fix issues when driver dispatch routine returns different status codes ([Wine Bug #30155](https://bugs.winehq.org/show_bug.cgi?id=30155))
* Fix issues with dragging layers between images in Adobe Photoshop 7.0 ([Wine Bug #12007](https://bugs.winehq.org/show_bug.cgi?id=12007))
* Fix missing video introduced by pixelformat changes. ([Wine Bug #36900](https://bugs.winehq.org/show_bug.cgi?id=36900))

2
debian/changelog vendored
View File

@ -4,7 +4,9 @@ wine-staging (1.7.35) UNRELEASED; urgency=low
* Synchronize CSMT patchset with https://github.com/stefand/wine.
* Added patch to implement support for DDS file format in D3DXSaveTextureToFileInMemory.
* Added patch to avoid appending duplicate NULL character when importing keys with regedit.
* Added patch for IConnectionPoint/INetworkListManagerEvents stub interface.
* Removed patch to set last error on success in WSARecv (accepted upstream).
* Removed patch to fix handling of subdirectory in FtpFindFirstFile (accepted upstream).
-- Sebastian Lackner <sebastian@fds-team.de> Mon, 12 Jan 2015 13:06:22 +0100
wine-staging (1.7.34-1) unstable; urgency=low

View File

@ -182,7 +182,6 @@ patch_enable_all ()
enable_winex11_Window_Groups="$1"
enable_winex11_XEMBED="$1"
enable_winex11_wglShareLists="$1"
enable_wininet_FtpFindFirstFile="$1"
enable_wininet_encoding="$1"
enable_wpcap_Dynamic_Linking="$1"
enable_ws2_32_Connect_Time="$1"
@ -574,9 +573,6 @@ patch_enable ()
winex11-wglShareLists)
enable_winex11_wglShareLists="$2"
;;
wininet-FtpFindFirstFile)
enable_wininet_FtpFindFirstFile="$2"
;;
wininet-encoding)
enable_wininet_encoding="$2"
;;
@ -3447,21 +3443,6 @@ if test "$enable_winex11_wglShareLists" -eq 1; then
) >> "$patchlist"
fi
# Patchset wininet-FtpFindFirstFile
# |
# | This patchset fixes the following Wine bugs:
# | * [#16526] Fix handling of subdirectory in FtpFindFirstFile
# |
# | Modified files:
# | * dlls/wininet/ftp.c, dlls/wininet/tests/ftp.c
# |
if test "$enable_wininet_FtpFindFirstFile" -eq 1; then
patch_apply wininet-FtpFindFirstFile/0001-wininet-Fix-handling-of-subdirectory-in-FtpFindFirst.patch
(
echo '+ { "Sebastian Lackner", "wininet: Fix handling of subdirectory in FtpFindFirstFile.", 1 },';
) >> "$patchlist"
fi
# Patchset wininet-encoding
# |
# | This patchset fixes the following Wine bugs:

View File

@ -1,110 +0,0 @@
From dd5f4680aa8ee8f8e354f0d389a87441cf2a5c65 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Tue, 16 Dec 2014 01:37:12 +0100
Subject: wininet: Fix handling of subdirectory in FtpFindFirstFile.
Based on a patch by Mike Ruprecht.
---
dlls/wininet/ftp.c | 18 +++++++++++++++++-
dlls/wininet/tests/ftp.c | 23 +++++++++++++++++++++--
2 files changed, 38 insertions(+), 3 deletions(-)
diff --git a/dlls/wininet/ftp.c b/dlls/wininet/ftp.c
index f45e495..64c06c3 100644
--- a/dlls/wininet/ftp.c
+++ b/dlls/wininet/ftp.c
@@ -831,6 +831,7 @@ static HINTERNET FTP_FtpFindFirstFileW(ftp_session_t *lpwfs,
INT nResCode;
appinfo_t *hIC = NULL;
HINTERNET hFindNext = NULL;
+ LPWSTR lpszSearchPath = NULL;
TRACE("\n");
@@ -846,7 +847,20 @@ static HINTERNET FTP_FtpFindFirstFileW(ftp_session_t *lpwfs,
if (!FTP_SendPortOrPasv(lpwfs))
goto lend;
- if (!FTP_SendCommand(lpwfs->sndSocket, FTP_CMD_LIST, NULL,
+ /* split search path into file and path */
+ if (lpszSearchFile)
+ {
+ LPCWSTR name = lpszSearchFile, p;
+ if ((p = strrchrW( name, '\\' ))) name = p + 1;
+ if ((p = strrchrW( name, '/' ))) name = p + 1;
+ if (name != lpszSearchFile)
+ {
+ lpszSearchPath = heap_strndupW(lpszSearchFile, name - lpszSearchFile);
+ lpszSearchFile = name;
+ }
+ }
+
+ if (!FTP_SendCommand(lpwfs->sndSocket, FTP_CMD_LIST, lpszSearchPath,
lpwfs->hdr.lpfnStatusCB, &lpwfs->hdr, lpwfs->hdr.dwContext))
goto lend;
@@ -872,6 +886,8 @@ static HINTERNET FTP_FtpFindFirstFileW(ftp_session_t *lpwfs,
}
lend:
+ heap_free(lpszSearchPath);
+
if (lpwfs->lstnSocket != -1)
{
closesocket(lpwfs->lstnSocket);
diff --git a/dlls/wininet/tests/ftp.c b/dlls/wininet/tests/ftp.c
index b88b136..567545d 100644
--- a/dlls/wininet/tests/ftp.c
+++ b/dlls/wininet/tests/ftp.c
@@ -751,6 +751,7 @@ static void test_find_first_file(HINTERNET hFtp, HINTERNET hConnect)
HINTERNET hSearch2;
HINTERNET hOpenFile;
DWORD error;
+ BOOL success;
/* NULL as the search file ought to return the first file in the directory */
SetLastError(0xdeadbeef);
@@ -770,13 +771,13 @@ static void test_find_first_file(HINTERNET hFtp, HINTERNET hConnect)
/* Try a valid filename in a subdirectory search */
SetLastError(0xdeadbeef);
hSearch = FtpFindFirstFileA(hFtp, "pub/wine", &findData, 0, 0);
- todo_wine ok ( hSearch != NULL, "Expected FtpFindFirstFileA to pass\n" );
+ ok( hSearch != NULL, "Expected FtpFindFirstFileA to pass\n" );
InternetCloseHandle(hSearch);
/* Try a valid filename in a subdirectory wildcard search */
SetLastError(0xdeadbeef);
hSearch = FtpFindFirstFileA(hFtp, "pub/w*", &findData, 0, 0);
- todo_wine ok ( hSearch != NULL, "Expected FtpFindFirstFileA to pass\n" );
+ ok( hSearch != NULL, "Expected FtpFindFirstFileA to pass\n" );
InternetCloseHandle(hSearch);
/* Try an invalid wildcard search */
@@ -785,6 +786,24 @@ static void test_find_first_file(HINTERNET hFtp, HINTERNET hConnect)
ok ( hSearch == NULL, "Expected FtpFindFirstFileA to fail\n" );
InternetCloseHandle(hSearch); /* Just in case */
+ /* change current directory, and repeat those tests - this shows
+ * that the search string is interpreted as relative directory. */
+ success = FtpSetCurrentDirectoryA(hFtp, "pub");
+ ok( success, "Expected FtpSetCurrentDirectory to succeed\n" );
+
+ SetLastError(0xdeadbeef);
+ hSearch = FtpFindFirstFileA(hFtp, "wine", &findData, 0, 0);
+ ok( hSearch != NULL, "Expected FtpFindFirstFileA to pass\n" );
+ InternetCloseHandle(hSearch);
+
+ SetLastError(0xdeadbeef);
+ hSearch = FtpFindFirstFileA(hFtp, "w*", &findData, 0, 0);
+ ok( hSearch != NULL, "Expected FtpFindFirstFileA to pass\n" );
+ InternetCloseHandle(hSearch);
+
+ success = FtpSetCurrentDirectoryA(hFtp, "..");
+ ok( success, "Expected FtpSetCurrentDirectory to succeed\n" );
+
/* Try FindFirstFile between FtpOpenFile and InternetCloseHandle */
SetLastError(0xdeadbeef);
hOpenFile = FtpOpenFileA(hFtp, "welcome.msg", GENERIC_READ, FTP_TRANSFER_TYPE_ASCII, 0);
--
2.1.3

View File

@ -1 +0,0 @@
Fixes: [16526] Fix handling of subdirectory in FtpFindFirstFile