mirror of
https://github.com/labwc/labwc.git
synced 2025-10-29 05:40:24 -04:00
view: fix NULL string_prop crash
...when app_id is NULL. Make sure view_get_string_prop() never returns NULL because it is so easy to misuse. Same for the respective xwayland/xdg impl methods in case anyone decides to (incorrectly) call them directly in future. Fixes: #2453
This commit is contained in:
parent
bad788ccdd
commit
023427b4f4
3 changed files with 8 additions and 6 deletions
|
|
@ -2335,13 +2335,15 @@ view_has_strut_partial(struct view *view)
|
|||
view->impl->has_strut_partial(view);
|
||||
}
|
||||
|
||||
/* Note: It is safe to assume that this function never returns NULL */
|
||||
const char *
|
||||
view_get_string_prop(struct view *view, const char *prop)
|
||||
{
|
||||
assert(view);
|
||||
assert(prop);
|
||||
if (view->impl->get_string_prop) {
|
||||
return view->impl->get_string_prop(view, prop);
|
||||
const char *ret = view->impl->get_string_prop(view, prop);
|
||||
return ret ? ret : "";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -660,10 +660,10 @@ xdg_toplevel_view_get_string_prop(struct view *view, const char *prop)
|
|||
}
|
||||
|
||||
if (!strcmp(prop, "title")) {
|
||||
return xdg_toplevel->title;
|
||||
return xdg_toplevel->title ? xdg_toplevel->title : "";
|
||||
}
|
||||
if (!strcmp(prop, "app_id")) {
|
||||
return xdg_toplevel->app_id;
|
||||
return xdg_toplevel->app_id ? xdg_toplevel->app_id : "";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -485,10 +485,10 @@ xwayland_view_get_string_prop(struct view *view, const char *prop)
|
|||
}
|
||||
|
||||
if (!strcmp(prop, "title")) {
|
||||
return xwayland_surface->title;
|
||||
return xwayland_surface->title ? xwayland_surface->title : "";
|
||||
}
|
||||
if (!strcmp(prop, "class")) {
|
||||
return xwayland_surface->class;
|
||||
return xwayland_surface->class ? xwayland_surface->class : "";
|
||||
}
|
||||
/*
|
||||
* Use the WM_CLASS 'instance' (1st string) for the app_id. Per
|
||||
|
|
@ -500,7 +500,7 @@ xwayland_view_get_string_prop(struct view *view, const char *prop)
|
|||
* here since we use the app_id for icon lookups.
|
||||
*/
|
||||
if (!strcmp(prop, "app_id")) {
|
||||
return xwayland_surface->instance;
|
||||
return xwayland_surface->instance ? xwayland_surface->instance : "";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue