Summary: | heap-buffer-overflow at base/gdevm32.c:102 in mem_true32_fill_rectangle | ||
---|---|---|---|
Product: | Ghostscript | Reporter: | Suhwan <prada960808> |
Component: | General | Assignee: | Ray Johnston <ray.johnston> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | robin.watts |
Priority: | P4 | ||
Version: | master | ||
Hardware: | PC | ||
OS: | Linux | ||
Customer: | Word Size: | --- | |
Attachments: | poc |
Description
Suhwan
2019-10-26 05:36:48 UTC
Julian had a look at this one, there's some discussion in teh #artifex IRC logs on 29th October 2019 at around 12:42 which might be (somewhat) illuminating. Robin's conclusion at 13:48 is that the bandheight is being calculated incorrectly, but that may not be the end of the story. clist_init_data is called several times with the device having a width of 2933. This (I believe) calculates the band height. Then gx_device_set_hwsize_from_media is called from cdj970_one_time_initialisation, within cdj970_print_page and that changes the width to 5100. When we then try to fill the page according to the width etc, we overrun the buffer. Fixed in commit 4f73e8b4d578e69a17f452fa60d2130c5faaefd6 |