mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-31 19:49:50 +00:00
gdiplus: GdipGetFamilyName() should not crash when given a NULL name.
It used to crash on Windows XP and Vista but does not since Windows 7. Signed-off-by: Francois Gouget <fgouget@codeweavers.com> Signed-off-by: Esme Povirk <esme@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
261956b6fd
commit
ad663360fa
2 changed files with 8 additions and 8 deletions
|
@ -798,17 +798,20 @@ GpStatus WINGDIPAPI GdipCloneFontFamily(GpFontFamily *family, GpFontFamily **clo
|
||||||
* FAILURE: InvalidParameter if family is NULL
|
* FAILURE: InvalidParameter if family is NULL
|
||||||
*
|
*
|
||||||
* NOTES
|
* NOTES
|
||||||
* If name is a NULL ptr, then both XP and Vista will crash (so we do as well)
|
* If name is NULL, XP and Vista crash but not Windows 7+
|
||||||
*/
|
*/
|
||||||
GpStatus WINGDIPAPI GdipGetFamilyName (GDIPCONST GpFontFamily *family,
|
GpStatus WINGDIPAPI GdipGetFamilyName (GDIPCONST GpFontFamily *family,
|
||||||
WCHAR *name, LANGID language)
|
WCHAR *name, LANGID language)
|
||||||
{
|
{
|
||||||
static int lang_fixme;
|
static int lang_fixme;
|
||||||
|
|
||||||
|
TRACE("%p, %p, %d\n", family, name, language);
|
||||||
|
|
||||||
if (family == NULL)
|
if (family == NULL)
|
||||||
return InvalidParameter;
|
return InvalidParameter;
|
||||||
|
|
||||||
TRACE("%p, %p, %d\n", family, name, language);
|
if (name == NULL)
|
||||||
|
return Ok;
|
||||||
|
|
||||||
if (language != LANG_NEUTRAL && !lang_fixme++)
|
if (language != LANG_NEUTRAL && !lang_fixme++)
|
||||||
FIXME("No support for handling of multiple languages!\n");
|
FIXME("No support for handling of multiple languages!\n");
|
||||||
|
|
|
@ -388,12 +388,9 @@ static void test_fontfamily (void)
|
||||||
expect (Ok, stat);
|
expect (Ok, stat);
|
||||||
expect (0, lstrcmpiW(itsName, L"Tahoma"));
|
expect (0, lstrcmpiW(itsName, L"Tahoma"));
|
||||||
|
|
||||||
if (0)
|
/* Crashes on Windows XP SP2 and Vista */
|
||||||
{
|
stat = GdipGetFamilyName (family, NULL, LANG_NEUTRAL);
|
||||||
/* Crashes on Windows XP SP2, Vista, and so Wine as well */
|
expect (Ok, stat);
|
||||||
stat = GdipGetFamilyName (family, NULL, LANG_NEUTRAL);
|
|
||||||
expect (Ok, stat);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Make sure we don't read old data */
|
/* Make sure we don't read old data */
|
||||||
ZeroMemory (itsName, sizeof(itsName));
|
ZeroMemory (itsName, sizeof(itsName));
|
||||||
|
|
Loading…
Reference in a new issue