Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
ca96aed3
Commit
ca96aed3
authored
Aug 03, 2010
by
Andrew Nguyen
Committed by
Alexandre Julliard
Aug 03, 2010
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
gdi32: Improve AddFontMemResourceEx parameter validation.
parent
1186e3ca
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
84 additions
and
0 deletions
+84
-0
font.c
dlls/gdi32/font.c
+6
-0
font.c
dlls/gdi32/tests/font.c
+78
-0
No files found.
dlls/gdi32/font.c
View file @
ca96aed3
...
...
@@ -3188,6 +3188,12 @@ HANDLE WINAPI AddFontMemResourceEx( PVOID pbFont, DWORD cbFont, PVOID pdv, DWORD
HANDLE
ret
;
DWORD
num_fonts
;
if
(
!
pbFont
||
!
cbFont
||
!
pcFonts
)
{
SetLastError
(
ERROR_INVALID_PARAMETER
);
return
NULL
;
}
ret
=
WineEngAddFontMemResourceEx
(
pbFont
,
cbFont
,
pdv
,
&
num_fonts
);
if
(
ret
)
{
...
...
dlls/gdi32/tests/font.c
View file @
ca96aed3
...
...
@@ -3185,6 +3185,8 @@ static void test_AddFontMemResource(void)
void
*
font
;
DWORD
font_size
,
num_fonts
;
HANDLE
ret
;
DEVMODEA
dmA
;
BOOL
is_winxp
;
if
(
!
pAddFontMemResourceEx
||
!
pRemoveFontMemResourceEx
)
{
...
...
@@ -3199,6 +3201,74 @@ static void test_AddFontMemResource(void)
return
;
}
is_winxp
=
EnumDisplaySettingsA
(
NULL
,
ENUM_CURRENT_SETTINGS
,
&
dmA
)
&&
(
dmA
.
dmFields
&
DM_DISPLAYORIENTATION
);
if
(
is_winxp
)
{
SetLastError
(
0xdeadbeef
);
ret
=
pAddFontMemResourceEx
(
NULL
,
0
,
NULL
,
NULL
);
ok
(
!
ret
,
"AddFontMemResourceEx should fail
\n
"
);
ok
(
GetLastError
()
==
ERROR_INVALID_PARAMETER
,
"Expected GetLastError() to return ERROR_INVALID_PARAMETER, got %u
\n
"
,
GetLastError
());
SetLastError
(
0xdeadbeef
);
ret
=
pAddFontMemResourceEx
(
NULL
,
10
,
NULL
,
NULL
);
ok
(
!
ret
,
"AddFontMemResourceEx should fail
\n
"
);
ok
(
GetLastError
()
==
ERROR_INVALID_PARAMETER
,
"Expected GetLastError() to return ERROR_INVALID_PARAMETER, got %u
\n
"
,
GetLastError
());
SetLastError
(
0xdeadbeef
);
ret
=
pAddFontMemResourceEx
(
NULL
,
0
,
NULL
,
&
num_fonts
);
ok
(
!
ret
,
"AddFontMemResourceEx should fail
\n
"
);
ok
(
GetLastError
()
==
ERROR_INVALID_PARAMETER
,
"Expected GetLastError() to return ERROR_INVALID_PARAMETER, got %u
\n
"
,
GetLastError
());
SetLastError
(
0xdeadbeef
);
ret
=
pAddFontMemResourceEx
(
NULL
,
10
,
NULL
,
&
num_fonts
);
ok
(
!
ret
,
"AddFontMemResourceEx should fail
\n
"
);
ok
(
GetLastError
()
==
ERROR_INVALID_PARAMETER
,
"Expected GetLastError() to return ERROR_INVALID_PARAMETER, got %u
\n
"
,
GetLastError
());
SetLastError
(
0xdeadbeef
);
ret
=
pAddFontMemResourceEx
(
font
,
0
,
NULL
,
NULL
);
ok
(
!
ret
,
"AddFontMemResourceEx should fail
\n
"
);
ok
(
GetLastError
()
==
ERROR_INVALID_PARAMETER
,
"Expected GetLastError() to return ERROR_INVALID_PARAMETER, got %u
\n
"
,
GetLastError
());
SetLastError
(
0xdeadbeef
);
ret
=
pAddFontMemResourceEx
(
font
,
10
,
NULL
,
NULL
);
ok
(
!
ret
,
"AddFontMemResourceEx should fail
\n
"
);
ok
(
GetLastError
()
==
ERROR_INVALID_PARAMETER
,
"Expected GetLastError() to return ERROR_INVALID_PARAMETER, got %u
\n
"
,
GetLastError
());
num_fonts
=
0xdeadbeef
;
SetLastError
(
0xdeadbeef
);
ret
=
pAddFontMemResourceEx
(
font
,
0
,
NULL
,
&
num_fonts
);
ok
(
!
ret
,
"AddFontMemResourceEx should fail
\n
"
);
ok
(
GetLastError
()
==
ERROR_INVALID_PARAMETER
,
"Expected GetLastError() to return ERROR_INVALID_PARAMETER, got %u
\n
"
,
GetLastError
());
ok
(
num_fonts
==
0xdeadbeef
,
"number of loaded fonts should be 0xdeadbeef
\n
"
);
num_fonts
=
0xdeadbeef
;
SetLastError
(
0xdeadbeef
);
ret
=
pAddFontMemResourceEx
(
font
,
10
,
NULL
,
&
num_fonts
);
ok
(
!
ret
,
"AddFontMemResourceEx should fail
\n
"
);
ok
(
GetLastError
()
==
0xdeadbeef
,
"Expected GetLastError() to return 0xdeadbeef, got %u
\n
"
,
GetLastError
());
ok
(
num_fonts
==
0xdeadbeef
,
"number of loaded fonts should be 0xdeadbeef
\n
"
);
}
else
win_skip
(
"AddFontMemResourceEx invalid parameter tests are problematic on Win2k
\n
"
);
num_fonts
=
0xdeadbeef
;
SetLastError
(
0xdeadbeef
);
ret
=
pAddFontMemResourceEx
(
font
,
font_size
,
NULL
,
&
num_fonts
);
...
...
@@ -3215,11 +3285,19 @@ static void test_AddFontMemResource(void)
font
=
load_font
(
"sserife.fon"
,
&
font_size
);
ok
(
font
!=
NULL
,
"Unable to locate and load font sserife.fon
\n
"
);
SetLastError
(
0xdeadbeef
);
ret
=
pAddFontMemResourceEx
(
font
,
font_size
,
NULL
,
(
void
*
)
0xdeadbeef
);
ok
(
!
ret
,
"AddFontMemResourceEx should fail
\n
"
);
ok
(
GetLastError
()
==
0xdeadbeef
,
"Expected GetLastError() to return 0xdeadbeef, got %u
\n
"
,
GetLastError
());
SetLastError
(
0xdeadbeef
);
ret
=
pAddFontMemResourceEx
(
font
,
font_size
,
NULL
,
NULL
);
ok
(
!
ret
,
"AddFontMemResourceEx should fail
\n
"
);
ok
(
GetLastError
()
==
ERROR_INVALID_PARAMETER
,
"Expected GetLastError() to return ERROR_INVALID_PARAMETER, got %u
\n
"
,
GetLastError
());
free_font
(
font
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment