diff options
| author | YAMAMOTO Mitsuharu | 2020-01-07 12:32:42 +0900 |
|---|---|---|
| committer | YAMAMOTO Mitsuharu | 2020-01-07 12:32:42 +0900 |
| commit | 075f21c0e3f4893c07c93298368ef8ac7c9eb012 (patch) | |
| tree | df5e9dd9ce0d4ea76e786ea8f1be58de01cca0ef /src | |
| parent | 16c6dfb4f16bd399c70eade799ee5621614f7e83 (diff) | |
| download | emacs-075f21c0e3f4893c07c93298368ef8ac7c9eb012.tar.gz emacs-075f21c0e3f4893c07c93298368ef8ac7c9eb012.zip | |
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.c | 4 |
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) | |||
| 1242 | if (img->cr_data == NULL || (cairo_pattern_get_type (img->cr_data) | 1242 | if (img->cr_data == NULL || (cairo_pattern_get_type (img->cr_data) |
| 1243 | != CAIRO_PATTERN_TYPE_SURFACE)) | 1243 | != CAIRO_PATTERN_TYPE_SURFACE)) |
| 1244 | { | 1244 | { |
| 1245 | /* Fill in the background/background_transparent field while | ||
| 1246 | we have img->pixmap->data/img->mask->data. */ | ||
| 1247 | IMAGE_BACKGROUND (img, f, img->pixmap); | ||
| 1248 | IMAGE_BACKGROUND_TRANSPARENT (img, f, img->mask); | ||
| 1245 | cr_put_image_to_cr_data (img); | 1249 | cr_put_image_to_cr_data (img); |
| 1246 | if (img->cr_data == NULL) | 1250 | if (img->cr_data == NULL) |
| 1247 | { | 1251 | { |