comctl32: Fix invalid usage of CompareString in StrStr functions.
This commit is contained in:
parent
27ac8d265e
commit
766f587f90
@ -291,7 +291,7 @@ LPSTR WINAPI StrChrA(LPCSTR lpszStr, WORD ch)
|
|||||||
* PARAMS
|
* PARAMS
|
||||||
* lpszStr [I] First string to compare
|
* lpszStr [I] First string to compare
|
||||||
* lpszComp [I] Second string to compare
|
* lpszComp [I] Second string to compare
|
||||||
* iLen [I] Maximum number of chars to compare.
|
* iLen [I] Number of chars to compare
|
||||||
*
|
*
|
||||||
* RETURNS
|
* RETURNS
|
||||||
* An integer less than, equal to or greater than 0, indicating that
|
* An integer less than, equal to or greater than 0, indicating that
|
||||||
@ -323,13 +323,15 @@ static LPSTR COMCTL32_StrStrHelperA(LPCSTR lpszStr, LPCSTR lpszSearch,
|
|||||||
INT (WINAPI *pStrCmpFn)(LPCSTR,LPCSTR,INT))
|
INT (WINAPI *pStrCmpFn)(LPCSTR,LPCSTR,INT))
|
||||||
{
|
{
|
||||||
size_t iLen;
|
size_t iLen;
|
||||||
|
LPCSTR end;
|
||||||
|
|
||||||
if (!lpszStr || !lpszSearch || !*lpszSearch)
|
if (!lpszStr || !lpszSearch || !*lpszSearch)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
iLen = strlen(lpszSearch);
|
iLen = strlen(lpszSearch);
|
||||||
|
end = lpszStr + strlen(lpszStr);
|
||||||
|
|
||||||
while (*lpszStr)
|
while (lpszStr + iLen <= end)
|
||||||
{
|
{
|
||||||
if (!pStrCmpFn(lpszStr, lpszSearch, iLen))
|
if (!pStrCmpFn(lpszStr, lpszSearch, iLen))
|
||||||
return (LPSTR)lpszStr;
|
return (LPSTR)lpszStr;
|
||||||
@ -382,6 +384,7 @@ INT WINAPI StrToIntA (LPCSTR lpszStr)
|
|||||||
LPWSTR WINAPI StrStrIW(LPCWSTR lpszStr, LPCWSTR lpszSearch)
|
LPWSTR WINAPI StrStrIW(LPCWSTR lpszStr, LPCWSTR lpszSearch)
|
||||||
{
|
{
|
||||||
int iLen;
|
int iLen;
|
||||||
|
LPCWSTR end;
|
||||||
|
|
||||||
TRACE("(%s,%s)\n", debugstr_w(lpszStr), debugstr_w(lpszSearch));
|
TRACE("(%s,%s)\n", debugstr_w(lpszStr), debugstr_w(lpszSearch));
|
||||||
|
|
||||||
@ -389,8 +392,9 @@ LPWSTR WINAPI StrStrIW(LPCWSTR lpszStr, LPCWSTR lpszSearch)
|
|||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
iLen = strlenW(lpszSearch);
|
iLen = strlenW(lpszSearch);
|
||||||
|
end = lpszStr + strlenW(lpszStr);
|
||||||
|
|
||||||
while (*lpszStr)
|
while (lpszStr + iLen <= end)
|
||||||
{
|
{
|
||||||
if (!StrCmpNIW(lpszStr, lpszSearch, iLen))
|
if (!StrCmpNIW(lpszStr, lpszSearch, iLen))
|
||||||
return (LPWSTR)lpszStr;
|
return (LPWSTR)lpszStr;
|
||||||
@ -480,7 +484,7 @@ LPWSTR WINAPI StrChrW(LPCWSTR lpszStr, WCHAR ch)
|
|||||||
* PARAMS
|
* PARAMS
|
||||||
* lpszStr [I] First string to compare
|
* lpszStr [I] First string to compare
|
||||||
* lpszComp [I] Second string to compare
|
* lpszComp [I] Second string to compare
|
||||||
* iLen [I] Maximum number of chars to compare.
|
* iLen [I] Number of chars to compare
|
||||||
*
|
*
|
||||||
* RETURNS
|
* RETURNS
|
||||||
* An integer less than, equal to or greater than 0, indicating that
|
* An integer less than, equal to or greater than 0, indicating that
|
||||||
|
Loading…
x
Reference in New Issue
Block a user