diff options
author | Michal Sudolsky <michal@sudolio.com> | 2020-07-21 20:02:24 +0200 |
---|---|---|
committer | Uli Schlachter <psychon@znc.in> | 2020-10-21 11:14:28 +0000 |
commit | a67735010dd7576fac7d5e30e0933a3be313b75e (patch) | |
tree | 808c61363d4135ffa62b8634f3dd14fcce013fab /src/cairo-scaled-font.c | |
parent | f8967015029e2c1c59913a2a684c74f62b6e8979 (diff) | |
download | cairo-a67735010dd7576fac7d5e30e0933a3be313b75e.tar.gz |
fix double free and failed assertions in cairo_scaled_font_destroy
Diffstat (limited to 'src/cairo-scaled-font.c')
-rwxr-xr-x[-rw-r--r--] | src/cairo-scaled-font.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/cairo-scaled-font.c b/src/cairo-scaled-font.c index 8dff57d95..d53915fee 100644..100755 --- a/src/cairo-scaled-font.c +++ b/src/cairo-scaled-font.c @@ -1320,15 +1320,15 @@ cairo_scaled_font_destroy (cairo_scaled_font_t *scaled_font) assert (CAIRO_REFERENCE_COUNT_HAS_REFERENCE (&scaled_font->ref_count)); + font_map = _cairo_scaled_font_map_lock (); + assert (font_map != NULL); + if (! _cairo_reference_count_dec_and_test (&scaled_font->ref_count)) - return; + goto unlock; assert (! scaled_font->cache_frozen); assert (! scaled_font->global_cache_frozen); - font_map = _cairo_scaled_font_map_lock (); - assert (font_map != NULL); - /* Another thread may have resurrected the font whilst we waited */ if (! CAIRO_REFERENCE_COUNT_HAS_REFERENCE (&scaled_font->ref_count)) { if (! scaled_font->placeholder && |