mirror of
https://github.com/swaywm/sway.git
synced 2026-04-07 08:21:29 -04:00
fix(swaybar/dbusmenu): fix null pointer dereference when loading icons
This change adds a null check when loading icons in the dbusmenu code to avoid a segmentation fault when the icon surface fails to load.
This commit is contained in:
parent
9e035e0277
commit
2508a1d019
1 changed files with 10 additions and 8 deletions
|
|
@ -421,6 +421,7 @@ static void draw_menu_items(cairo_t *cairo, struct swaybar_dbusmenu_menu *menu,
|
||||||
if (icon_path) {
|
if (icon_path) {
|
||||||
cairo_surface_t *icon = load_image(icon_path);
|
cairo_surface_t *icon = load_image(icon_path);
|
||||||
free(icon_path);
|
free(icon_path);
|
||||||
|
if (icon) {
|
||||||
cairo_surface_t *icon_scaled =
|
cairo_surface_t *icon_scaled =
|
||||||
cairo_image_surface_scale(icon, size, size);
|
cairo_image_surface_scale(icon, size, size);
|
||||||
cairo_surface_destroy(icon);
|
cairo_surface_destroy(icon);
|
||||||
|
|
@ -431,6 +432,7 @@ static void draw_menu_items(cairo_t *cairo, struct swaybar_dbusmenu_menu *menu,
|
||||||
cairo_surface_destroy(icon_scaled);
|
cairo_surface_destroy(icon_scaled);
|
||||||
is_icon_drawn = true;
|
is_icon_drawn = true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} else if (item->icon_data) {
|
} else if (item->icon_data) {
|
||||||
cairo_surface_t *icon = cairo_image_surface_scale(item->icon_data, size, size);
|
cairo_surface_t *icon = cairo_image_surface_scale(item->icon_data, size, size);
|
||||||
cairo_set_source_surface(cairo, icon, x, y);
|
cairo_set_source_surface(cairo, icon, x, y);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue