summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>2020-01-07 12:32:42 +0900
committerYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>2020-01-07 12:32:42 +0900
commit075f21c0e3f4893c07c93298368ef8ac7c9eb012 (patch)
treedf5e9dd9ce0d4ea76e786ea8f1be58de01cca0ef /src
parent16c6dfb4f16bd399c70eade799ee5621614f7e83 (diff)
downloademacs-075f21c0e3f4893c07c93298368ef8ac7c9eb012.tar.gz
Avoid crash by access to cleared img->pixmap->data/img->mask->data (Bug#38774)
* src/image.c (prepare_image_for_display) [USE_CAIRO]: Call IMAGE_BACKGROUND and IMAGE_BACKGROUND_TRANSPARENT.
Diffstat (limited to 'src')
-rw-r--r--src/image.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/image.c b/src/image.c
index 5fe0d713e1b..e36253b3960 100644
--- a/src/image.c
+++ b/src/image.c
@@ -1242,6 +1242,10 @@ prepare_image_for_display (struct frame *f, struct image *img)
if (img->cr_data == NULL || (cairo_pattern_get_type (img->cr_data)
!= CAIRO_PATTERN_TYPE_SURFACE))
{
+ /* Fill in the background/background_transparent field while
+ we have img->pixmap->data/img->mask->data. */
+ IMAGE_BACKGROUND (img, f, img->pixmap);
+ IMAGE_BACKGROUND_TRANSPARENT (img, f, img->mask);
cr_put_image_to_cr_data (img);
if (img->cr_data == NULL)
{