guri: Make G_URI_FLAGS_PARSE_STRICT the default

Make `G_URI_FLAGS_PARSE_RELAXED` available instead, for the
implementations which need to handle user-provided or incorrect URIs.
The default should nudge people towards being compliant with RFC 3986.

This required also adding a new `G_URI_PARAMS_PARSE_RELAXED` flag, as
previously parsing param strings *always* used relaxed mode and there
was no way to control it. Now it defaults to using strict mode, and the
new flag allows for relaxed mode to be enabled if needed.

Signed-off-by: Philip Withnall <withnall@endlessm.com>

Fixes: #2149
This commit is contained in:
Philip Withnall
2020-08-06 15:14:26 +01:00
parent 943b1e45ab
commit b654eb1846
7 changed files with 99 additions and 88 deletions

View File

@@ -31,7 +31,7 @@ LLVMFuzzerTestOneInput (const unsigned char *data, size_t size)
/* ignore @size (g_uri_parse() doesnt support it); ensure @data is nul-terminated */
nul_terminated_data = (unsigned char *) g_strndup ((const gchar *) data, size);
test_with_flags ((const gchar *) nul_terminated_data, G_URI_FLAGS_NONE);
test_with_flags ((const gchar *) nul_terminated_data, G_URI_FLAGS_PARSE_STRICT);
test_with_flags ((const gchar *) nul_terminated_data, G_URI_FLAGS_PARSE_RELAXED);
g_free (nul_terminated_data);
return 0;