summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Walsh <DragText@E-vertise.Com>2010-08-07 16:30:59 +0300
committerM Joonas Pihlaja <jpihlaja@cc.helsinki.fi>2010-08-07 17:02:00 +0300
commit6752efe95cecfce9c0f9efdc2333617995a71dd0 (patch)
tree02e5bbda0e4a1dd3cba195c66eaa1dabb0379084
parent1d807cf9da29d43e3c104c51c14fa2f1b25ba1f5 (diff)
os2: Restore surface type checking in the get_extents method.wip/os2-walsh
-rw-r--r--src/cairo-os2-surface.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/cairo-os2-surface.c b/src/cairo-os2-surface.c
index 754f60c1..b9758281 100644
--- a/src/cairo-os2-surface.c
+++ b/src/cairo-os2-surface.c
@@ -714,7 +714,15 @@ static cairo_bool_t
_cairo_os2_surface_get_extents (void *abstract_surface,
cairo_rectangle_int_t *rectangle)
{
- cairo_os2_surface_t *local_os2_surface = abstract_surface;
+ cairo_os2_surface_t *local_os2_surface;
+
+ local_os2_surface = (cairo_os2_surface_t *) abstract_surface;
+ if ((!local_os2_surface) ||
+ (local_os2_surface->base.backend != &cairo_os2_surface_backend))
+ {
+ /* Invalid parameter (wrong surface)! */
+ return _cairo_error (CAIRO_STATUS_SURFACE_TYPE_MISMATCH);
+ }
rectangle->x = 0;
rectangle->y = 0;