mirror of
				https://gitlab.gnome.org/GNOME/glib.git
				synced 2025-11-04 01:58:54 +01:00 
			
		
		
		
	gdbus: fix out-of-bound array access
In path_rule_matches(), the given paths may be of 0-length. Do not access memory before the array in those case. This is for example triggered by: test_match_rule (con, G_DBUS_SIGNAL_FLAGS_MATCH_ARG0_PATH, "/", "", FALSE); in test_connection_signal_match_rules(). This bug was found thanks to GCC AddressSanitizer. https://bugzilla.gnome.org/show_bug.cgi?id=745745
This commit is contained in:
		@@ -3703,10 +3703,10 @@ path_rule_matches (const gchar *path_a,
 | 
			
		||||
  len_a = strlen (path_a);
 | 
			
		||||
  len_b = strlen (path_b);
 | 
			
		||||
 | 
			
		||||
  if (len_a < len_b && path_a[len_a - 1] != '/')
 | 
			
		||||
  if (len_a < len_b && (len_a == 0 || path_a[len_a - 1] != '/'))
 | 
			
		||||
    return FALSE;
 | 
			
		||||
 | 
			
		||||
  if (len_b < len_a && path_b[len_b - 1] != '/')
 | 
			
		||||
  if (len_b < len_a && (len_b == 0 || path_b[len_b - 1] != '/'))
 | 
			
		||||
    return FALSE;
 | 
			
		||||
 | 
			
		||||
  return memcmp (path_a, path_b, MIN (len_a, len_b)) == 0;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user