mirror of
				https://gitlab.gnome.org/GNOME/glib.git
				synced 2025-10-31 08:22:16 +01:00 
			
		
		
		
	GVariant: Better handling of invalid UTF-8
g_variant_new_string() hits a g_return_if_fail() when given invalid UTF-8. That's certainly the right thing to do, but g_variant_builder_add() uses this function internally and crashes when it returns NULL due to the user passing a non-utf8 string. We can protect the internal code by returning "[Invalid UTF-8]" in this case while also making the problem easier to debug (and less fatal). Closes #632631.
This commit is contained in:
		
				
					committed by
					
						 Matthias Clasen
						Matthias Clasen
					
				
			
			
				
	
			
			
			
						parent
						
							76c8e94637
						
					
				
				
					commit
					5367f90c67
				
			| @@ -3687,7 +3687,16 @@ g_variant_valist_new_nnp (const gchar **str, | ||||
|         } | ||||
|  | ||||
|     case 's': | ||||
|       return g_variant_new_string (ptr); | ||||
|       { | ||||
|         GVariant *value; | ||||
|  | ||||
|         value = g_variant_new_string (ptr); | ||||
|  | ||||
|         if (value == NULL) | ||||
|           value = g_variant_new_string ("[Invalid UTF-8]"); | ||||
|  | ||||
|         return value; | ||||
|       } | ||||
|  | ||||
|     case 'o': | ||||
|       return g_variant_new_object_path (ptr); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user