diff --git a/tools/gxps-print-converter.c b/tools/gxps-print-converter.c index a4f2e1388a05580874d1d7b68b33d1ad467acd2b..554b990b8aeff13b994c8d98f40c588255a3025b 100644 --- a/tools/gxps-print-converter.c +++ b/tools/gxps-print-converter.c @@ -210,14 +210,17 @@ static void gxps_converter_print_converter_end_document (GXPSConverter *converter) { GXPSPrintConverter *print_converter = GXPS_PRINT_CONVERTER (converter); - cairo_status_t status; - - cairo_surface_finish (converter->surface); - status = cairo_surface_status (converter->surface); - if (status) - g_printerr ("Cairo error: %s\n", cairo_status_to_string (status)); - cairo_surface_destroy (converter->surface); - converter->surface = NULL; + + if (converter->surface) { + cairo_status_t status; + + cairo_surface_finish (converter->surface); + status = cairo_surface_status (converter->surface); + if (status) + g_printerr ("Cairo error: %s\n", cairo_status_to_string (status)); + cairo_surface_destroy (converter->surface); + converter->surface = NULL; + } g_free (print_converter->filename); print_converter->filename = NULL;