mirror of
https://github.com/swaywm/sway.git
synced 2026-02-11 04:28:15 -05: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,15 +421,17 @@ static void draw_menu_items(cairo_t *cairo, struct swaybar_dbusmenu_menu *menu,
|
|||
if (icon_path) {
|
||||
cairo_surface_t *icon = load_image(icon_path);
|
||||
free(icon_path);
|
||||
cairo_surface_t *icon_scaled =
|
||||
cairo_image_surface_scale(icon, size, size);
|
||||
cairo_surface_destroy(icon);
|
||||
if (icon) {
|
||||
cairo_surface_t *icon_scaled =
|
||||
cairo_image_surface_scale(icon, size, size);
|
||||
cairo_surface_destroy(icon);
|
||||
|
||||
cairo_set_source_surface(cairo, icon_scaled, x, y);
|
||||
cairo_rectangle(cairo, x, y, size, size);
|
||||
cairo_fill(cairo);
|
||||
cairo_surface_destroy(icon_scaled);
|
||||
is_icon_drawn = true;
|
||||
cairo_set_source_surface(cairo, icon_scaled, x, y);
|
||||
cairo_rectangle(cairo, x, y, size, size);
|
||||
cairo_fill(cairo);
|
||||
cairo_surface_destroy(icon_scaled);
|
||||
is_icon_drawn = true;
|
||||
}
|
||||
}
|
||||
} else if (item->icon_data) {
|
||||
cairo_surface_t *icon = cairo_image_surface_scale(item->icon_data, size, size);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue