diff --git a/src/cairo-svg-surface.c b/src/cairo-svg-surface.c index b830d91e0..e8cd8c63f 100644 --- a/src/cairo-svg-surface.c +++ b/src/cairo-svg-surface.c @@ -1403,6 +1403,10 @@ _cairo_svg_document_emit_color_glyph_data (cairo_svg_document_t *document, if (unlikely (status)) { return status; } + // User fonts always have a recording surface, but they may not be color glyphs. + if (scaled_glyph->color_glyph_set && !scaled_glyph->color_glyph) { + return CAIRO_INT_STATUS_UNSUPPORTED; + } cairo_surface_t *paginated_surface = _cairo_svg_surface_create_for_document (document, CAIRO_CONTENT_COLOR_ALPHA, diff --git a/test/reference/user-font-color.svg11.ref.png b/test/reference/user-font-color.svg11.ref.png new file mode 100644 index 000000000..55f4febf3 Binary files /dev/null and b/test/reference/user-font-color.svg11.ref.png differ