Added patch to workaround bugs in CompareStringW (triggered by Adobe Flash).

This commit is contained in:
Sebastian Lackner 2014-11-15 15:01:16 +01:00
parent 73da458bc5
commit 7e72d7770d
3 changed files with 54 additions and 0 deletions

1
debian/changelog vendored
View File

@ -26,6 +26,7 @@ wine-compholio (1.7.31) UNRELEASED; urgency=low
* Added patch to fix implementation of K32GetPerformanceInfo.
* Added patch to close server fd if there is no space in thread inflight fd list.
* Added patch to avoid failing in d3dx9_mesh_OptimizeInplace because of unimplemented vertex reordering.
* Added patch to workaround bugs in CompareStringW (triggered by Adobe Flash).
* Removed patch for iphlpapi stub functions (accepted upstream).
* Removed patches for FindFirstFileExW (accepted upstream).
* Removed patches for TLB dependencies lookup in resources (accepted upstream).

View File

@ -95,6 +95,7 @@ PATCHLIST := \
shell32-SHCreateSessionKey.ok \
shell32-SHFileOperation.ok \
shlwapi-PathIsDirectoryEmptyW.ok \
shlwapi-StrStrIW.ok \
shlwapi-UrlCombine.ok \
user32-Dialog_Paint_Event.ok \
user32-DrawTextExW.ok \
@ -1454,6 +1455,18 @@ shlwapi-PathIsDirectoryEmptyW.ok:
echo '+ { "Michael Müller", "shlwapi: Correctly treat '\''.'\'' when enumerating files in PathIsDirectoryEmptyW.", 1 },'; \
) > shlwapi-PathIsDirectoryEmptyW.ok
# Patchset shlwapi-StrStrIW
# |
# | Modified files:
# | * dlls/shlwapi/string.c
# |
.INTERMEDIATE: shlwapi-StrStrIW.ok
shlwapi-StrStrIW.ok:
$(call APPLY_FILE,shlwapi-StrStrIW/0001-shlwapi-Workaround-for-bugs-in-CompareStringW.patch)
@( \
echo '+ { "Sebastian Lackner", "shlwapi: Workaround for bugs in CompareStringW.", 1 },'; \
) > shlwapi-StrStrIW.ok
# Patchset shlwapi-UrlCombine
# |
# | Modified files:

View File

@ -0,0 +1,40 @@
From afc8ef8ffca3da82a5bb56ee5b496f5d33195c6a Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 15 Nov 2014 14:59:49 +0100
Subject: shlwapi: Workaround for bugs in CompareStringW.
---
dlls/shlwapi/string.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/dlls/shlwapi/string.c b/dlls/shlwapi/string.c
index b4b5b8a..72789fc 100644
--- a/dlls/shlwapi/string.c
+++ b/dlls/shlwapi/string.c
@@ -670,6 +670,7 @@ LPSTR WINAPI StrStrIA(LPCSTR lpszStr, LPCSTR lpszSearch)
LPWSTR WINAPI StrStrIW(LPCWSTR lpszStr, LPCWSTR lpszSearch)
{
int iLen;
+ int jLen;
TRACE("(%s,%s)\n", debugstr_w(lpszStr), debugstr_w(lpszSearch));
@@ -678,11 +679,14 @@ LPWSTR WINAPI StrStrIW(LPCWSTR lpszStr, LPCWSTR lpszSearch)
iLen = strlenW(lpszSearch);
- while (*lpszStr)
+ /* Workaround for bugs in CompareStringW */
+ jLen = strlenW(lpszStr);
+ while (jLen >= iLen)
{
if (!StrCmpNIW(lpszStr, lpszSearch, iLen))
return (LPWSTR)lpszStr;
lpszStr++;
+ jLen--;
}
return NULL;
}
--
2.1.3