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
	
	 Johan Malm
						Johan Malm