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-08 22:33:43 +0300
commit046b642db0782ab5e2a5c82988b21e05afe8e716 (patch)
treea49dc6559d84da251f9c9f44e0e0b527d4480936
parent78bdd87b7545f8e85632ac301a69da145727fcec (diff)
os2: Restore surface type checking in the get_extents method.
-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;