diff --git a/src/cairo-gstate.c b/src/cairo-gstate.c index 7b3180705..9f0e603d0 100644 --- a/src/cairo-gstate.c +++ b/src/cairo-gstate.c @@ -677,6 +677,9 @@ _cairo_gstate_transform (cairo_gstate_t *gstate, cairo_matrix_t tmp; cairo_status_t status; + if (! _cairo_matrix_is_invertible (matrix)) + return _cairo_error (CAIRO_STATUS_INVALID_MATRIX); + if (_cairo_matrix_is_identity (matrix)) return CAIRO_STATUS_SUCCESS;