summaryrefslogtreecommitdiff
path: root/src/svg
diff options
context:
space:
mode:
authorWerner Lemberg <wl@gnu.org>2022-01-23 19:05:15 +0100
committerWerner Lemberg <wl@gnu.org>2022-01-23 19:05:15 +0100
commitef48a332712ab4b3b509a3a2f2f045763c238b61 (patch)
treee8d3ccdf5059975c632473aa110432a154ac82a2 /src/svg
parentcddfe6574b1f96104b7c89bdc1979b54d69ba3e0 (diff)
downloadfreetype2-ef48a332712ab4b3b509a3a2f2f045763c238b61.tar.gz
* src/svg/ftsvg.c (ft_svg_property_set): Disallow NULL pointers.
Diffstat (limited to 'src/svg')
-rw-r--r--src/svg/ftsvg.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/svg/ftsvg.c b/src/svg/ftsvg.c
index 569f8ccf8..55c50718f 100644
--- a/src/svg/ftsvg.c
+++ b/src/svg/ftsvg.c
@@ -168,16 +168,34 @@
if ( value_is_string == TRUE )
- return FT_THROW( Invalid_Argument );
+ {
+ error = FT_THROW( Invalid_Argument );
+ goto Exit;
+ }
hooks = (SVG_RendererHooks*)value;
+ if ( !hooks->init_svg ||
+ !hooks->free_svg ||
+ !hooks->render_svg ||
+ !hooks->preset_slot )
+ {
+ FT_TRACE0(( "ft_svg_property_set:"
+ " SVG rendering hooks not set because\n" ));
+ FT_TRACE0(( " "
+ " at least one function pointer is NULL\n" ));
+
+ error = FT_THROW( Invalid_Argument );
+ goto Exit;
+ }
+
renderer->hooks = *hooks;
renderer->hooks_set = TRUE;
}
else
error = FT_THROW( Missing_Property );
+ Exit:
return error;
}