[mutter] window: Type check some wm functions



commit a331d4e45a2156703041efd6e22dbaba19018d54
Author: Jonas Ã…dahl <jadahl gmail com>
Date:   Fri Oct 14 21:56:10 2022 +0200

    window: Type check some wm functions
    
    These might get called from JS, so avoid crashing on bogus calls.
    
    Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5952
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2661>

 src/core/window.c | 9 +++++++++
 1 file changed, 9 insertions(+)
---
diff --git a/src/core/window.c b/src/core/window.c
index df5b19b132..660bf010ea 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -2463,6 +2463,7 @@ queue_calc_showing_func (MetaWindow *window,
 void
 meta_window_minimize (MetaWindow  *window)
 {
+  g_return_if_fail (META_IS_WINDOW (window));
   g_return_if_fail (!window->override_redirect);
 
   if (!window->has_minimize_func)
@@ -2623,6 +2624,7 @@ meta_window_maximize (MetaWindow        *window,
   MetaRectangle *saved_rect = NULL;
   gboolean maximize_horizontally, maximize_vertically;
 
+  g_return_if_fail (META_IS_WINDOW (window));
   g_return_if_fail (!window->override_redirect);
 
   /* At least one of the two directions ought to be set */
@@ -2897,6 +2899,8 @@ update_edge_constraints (MetaWindow *window)
 void
 meta_window_untile (MetaWindow *window)
 {
+  g_return_if_fail (META_IS_WINDOW (window));
+
   window->tile_monitor_number =
     window->saved_maximize ? window->monitor->number
                            : -1;
@@ -2917,6 +2921,8 @@ meta_window_tile (MetaWindow   *window,
   MetaMaximizeFlags directions;
   MetaRectangle old_frame_rect, old_buffer_rect;
 
+  g_return_if_fail (META_IS_WINDOW (window));
+
   meta_window_get_tile_fraction (window, tile_mode, &window->tile_hfraction);
   window->tile_mode = tile_mode;
 
@@ -3057,6 +3063,7 @@ meta_window_unmaximize (MetaWindow        *window,
 {
   gboolean unmaximize_horizontally, unmaximize_vertically;
 
+  g_return_if_fail (META_IS_WINDOW (window));
   g_return_if_fail (!window->override_redirect);
 
   /* At least one of the two directions ought to be set */
@@ -3262,6 +3269,7 @@ meta_window_make_fullscreen_internal (MetaWindow  *window)
 void
 meta_window_make_fullscreen (MetaWindow  *window)
 {
+  g_return_if_fail (META_IS_WINDOW (window));
   g_return_if_fail (!window->override_redirect);
 
   if (!window->fullscreen)
@@ -3289,6 +3297,7 @@ meta_window_make_fullscreen (MetaWindow  *window)
 void
 meta_window_unmake_fullscreen (MetaWindow  *window)
 {
+  g_return_if_fail (META_IS_WINDOW (window));
   g_return_if_fail (!window->override_redirect);
 
   if (window->fullscreen)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]