On 01.03.2016 9:46, Alistair Leslie-Hughes wrote:
diff --git a/dlls/comctl32/tooltips.c b/dlls/comctl32/tooltips.c
index 8bf6919..43c02ee 100644
--- a/dlls/comctl32/tooltips.c
+++ b/dlls/comctl32/tooltips.c
@@ -1038,7 +1038,9 @@ TOOLTIPS_AddToolT (TOOLTIPS_INFO *infoPtr, const TTTOOLINFOW *ti, BOOL isW)
infoPtr->hwndSelf, ti->hwnd, ti->uId,
(ti->uFlags & TTF_IDISHWND) ? " TTF_IDISHWND" : "");
- if (ti->cbSize >= TTTOOLINFOW_V2_SIZE && !ti->lpszText && isW)
if (ti->cbSize >= TTTOOLINFOW_V2_SIZE && isW && (!ti->lpszText ||
(ti->lpszText != LPSTR_TEXTCALLBACKW &&
IsBadStringPtrW(ti->lpszText, sizeof(WCHAR)))))
return FALSE;
if (infoPtr->uNumTools == 0) {
IsBadStringPtrW() won't do what you expect, if you expect it to validate
whole string up to NULL char. Also !ti->lpszText case is covered by
IsBadStringPtrW(), you don't need to test for it separately.