gtk2/gtk/a11y
Barnabás Pőcze ab5a6ed0f1 a11y: Check if path is NULL when removing from cache
`gtk_at_spi_cache_add_context()` checks if the GtkAtSpiContext's path
is NULL before inserting the context object into the hash table.
Do the same in `gtk_at_spi_cache_remove_context()` to avoid a NULL
pointer dereference in `g_str_hash()` during the hash table lookup
if a context with NULL path is removed. That can happen when the
GtkAtSpiRoot::base_path is NULL, which, in turn, can happen if
`g_application_get_dbus_object_path()` returns NULL.

  ==394047==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x7fd1966f8b84 bp 0x7fff11e3ded0 sp 0x7fff11e3de58 T0)
  ==394047==The signal is caused by a READ memory access.
  ==394047==Hint: address points to the zero page.
      #0 0x7fd1966f8b84 in g_str_hash (/usr/lib/libglib-2.0.so.0+0x37b84)
      #1 0x7fd1966f9c09 in g_hash_table_contains (/usr/lib/libglib-2.0.so.0+0x38c09)
      #2 0x7fd196062c10 in gtk_at_spi_cache_remove_context ../gtk/a11y/gtkatspicache.c:447
      #3 0x7fd19606e0a9 in gtk_at_spi_root_unregister ../gtk/a11y/gtkatspiroot.c:653
      #4 0x7fd196067f58 in gtk_at_spi_context_unrealize ../gtk/a11y/gtkatspicontext.c:1559
      #5 0x7fd195ced97f in gtk_at_context_unrealize ../gtk/gtkatcontext.c:668
      #6 0x7fd195f5576e in gtk_widget_unroot_at_context ../gtk/gtkwidget.c:2399
      #7 0x7fd195f55bd2 in gtk_widget_unroot ../gtk/gtkwidget.c:2499
      ...
2023-01-08 19:56:49 +01:00
..
atspi a11y: Drop GtkAccessibleRange.get_minimum_increment() 2022-09-30 18:36:02 +01:00
gtkatspiaction.c a11y: Avoid out-of-bounds access 2021-02-04 00:34:05 -05:00
gtkatspiactionprivate.h Initial ATSPI Action implementation for widget 2020-10-16 00:34:01 +01:00
gtkatspicache.c a11y: Check if path is NULL when removing from cache 2023-01-08 19:56:49 +01:00
gtkatspicacheprivate.h a11y: Add the root object to the cache 2021-04-19 19:22:20 +01:00
gtkatspicomponent.c a11y: Implement missing atspi.Component getters 2020-11-11 18:33:15 +00:00
gtkatspicomponentprivate.h atspi: Implement Component 2020-10-19 12:19:55 -04:00
gtkatspicontext.c atspicontext: Log more helpful warnings when the a11y bus doesn't exist 2022-11-28 17:02:18 -08:00
gtkatspicontextprivate.h a11y: Implement atspi.Cache 2020-11-16 16:44:56 +00:00
gtkatspieditabletext.c a11y: Rename some methods 2020-10-19 12:58:29 -04:00
gtkatspieditabletextprivate.h stack: Turn pages into accessibles 2020-10-14 21:04:17 -04:00
gtkatspipango.c gtk: Rename some private headers 2022-10-05 23:01:28 -04:00
gtkatspipangoprivate.h Move private function out of the AT-SPI a11y backend 2022-08-04 23:34:41 +01:00
gtkatspiprivate.h a11y: Add getters for GtkAtSpiContext 2020-11-16 16:44:56 +00:00
gtkatspiroot.c gtk: Use the new debug macros 2022-09-23 18:12:39 -04:00
gtkatspirootprivate.h a11y: Defer object registration after root registration 2022-04-19 16:35:27 +01:00
gtkatspiselection.c Deprecate treeviews and cell renderers 2022-10-11 17:18:21 -04:00
gtkatspiselectionprivate.h atspi: Implement Selection for notebook tabs 2020-10-14 21:04:25 -04:00
gtkatspitext.c gtk: Rename some private headers 2022-10-05 23:01:28 -04:00
gtkatspitextbuffer.c gtk: Rename some private headers 2022-10-05 23:01:28 -04:00
gtkatspitextbufferprivate.h Move private function out of the AT-SPI a11y backend 2022-08-04 23:34:41 +01:00
gtkatspitextprivate.h stack: Turn pages into accessibles 2020-10-14 21:04:17 -04:00
gtkatspiutils.c gtk: Clean up docs syntax 2021-05-22 17:25:26 -04:00
gtkatspiutilsprivate.h a11y: Move ChildrenChanged emitter to ATSPI utilities 2020-10-21 15:18:23 +01:00
gtkatspivalue.c a11y: Drop GtkAccessibleRange.get_minimum_increment() 2022-09-30 18:36:02 +01:00
gtkatspivalueprivate.h stack: Turn pages into accessibles 2020-10-14 21:04:17 -04:00
meson.build atspi: Implement Component 2020-10-19 12:19:55 -04:00