skin parser: Fix crash that can occur when same bmp is loaded multiple times

img may have already been loaded, in which case
bm.data will intentionally have been set to NULL
(see NOTE in load_skin_bmp)

Also see commit 01cbb79 and previous fix 35f9a5b

Change-Id: I581ed63836f30a6b669b3d1fd5886fc1b3664386
This commit is contained in:
Christian Soffke 2024-11-12 13:35:47 +01:00
parent 8e2b11cd3c
commit cb7b6fd572

View file

@ -2041,7 +2041,7 @@ static bool load_skin_bitmaps(struct wps_data *wps_data, char *bmpdir)
token = SKINOFFSETTOPTR(skin_buffer, imglist->token); token = SKINOFFSETTOPTR(skin_buffer, imglist->token);
if (token) { if (token) {
img = (struct gui_img*)SKINOFFSETTOPTR(skin_buffer, token->value.data); img = (struct gui_img*)SKINOFFSETTOPTR(skin_buffer, token->value.data);
if (img && !strcmp(path, img->bm.data)) if (img && img->bm.data && !strcmp(path, img->bm.data))
{ {
img->loaded = true; img->loaded = true;
img->buflib_handle = handle; img->buflib_handle = handle;