#include cairo_user_data_key_t whatever; int main (int argc, char *argv[]) { cairo_surface_t *surface; cairo_t *cr; cairo_pattern_t *radpat; surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 120, 120); cr = cairo_create (surface); radpat = cairo_pattern_create_rgb (0, 0, 0); // REMOVE THIS AND IT WONT CRASH cairo_pattern_set_user_data (radpat, &whatever, &whatever, 0); // SEGFAULT HERE cairo_mask (cr, radpat); return 0; }