Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 16 additions & 1 deletion ext/uri/uri_parser_rfc3986.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
struct php_uri_parser_rfc3986_uris {
UriUriA uri;
UriUriA normalized_uri;
unsigned int normalization_mask;
bool normalized_uri_initialized;
};

Expand Down Expand Up @@ -85,12 +86,26 @@ ZEND_ATTRIBUTE_NONNULL static void copy_uri(UriUriA *new_uriparser_uri, const Ur

ZEND_ATTRIBUTE_NONNULL static UriUriA *get_normalized_uri(php_uri_parser_rfc3986_uris *uriparser_uris) {
if (!uriparser_uris->normalized_uri_initialized) {
int mask_result = uriNormalizeSyntaxMaskRequiredExA(&uriparser_uris->uri, &uriparser_uris->normalization_mask);
if (mask_result != URI_SUCCESS) {
uriparser_uris->normalization_mask = (unsigned int)-1;
}
Comment on lines +89 to +92
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
int mask_result = uriNormalizeSyntaxMaskRequiredExA(&uriparser_uris->uri, &uriparser_uris->normalization_mask);
if (mask_result != URI_SUCCESS) {
uriparser_uris->normalization_mask = (unsigned int)-1;
}
int mask_result = uriNormalizeSyntaxMaskRequiredExA(&uriparser_uris->uri, &uriparser_uris->normalization_mask);
ZEND_ASSERT(mask_result == URI_SUCCESS);


if (uriparser_uris->normalization_mask == URI_NORMALIZED) {
uriparser_uris->normalized_uri_initialized = true;
return &uriparser_uris->uri;
}

copy_uri(&uriparser_uris->normalized_uri, &uriparser_uris->uri);
int result = uriNormalizeSyntaxExMmA(&uriparser_uris->normalized_uri, (unsigned int)-1, mm);
int result = uriNormalizeSyntaxExMmA(&uriparser_uris->normalized_uri, uriparser_uris->normalization_mask, mm);
ZEND_ASSERT(result == URI_SUCCESS);
Comment on lines +94 to 101
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if (uriparser_uris->normalization_mask == URI_NORMALIZED) {
uriparser_uris->normalized_uri_initialized = true;
return &uriparser_uris->uri;
}
copy_uri(&uriparser_uris->normalized_uri, &uriparser_uris->uri);
int result = uriNormalizeSyntaxExMmA(&uriparser_uris->normalized_uri, (unsigned int)-1, mm);
int result = uriNormalizeSyntaxExMmA(&uriparser_uris->normalized_uri, uriparser_uris->normalization_mask, mm);
ZEND_ASSERT(result == URI_SUCCESS);
if (uriparser_uris->normalization_mask != URI_NORMALIZED) {
copy_uri(&uriparser_uris->normalized_uri, &uriparser_uris->uri);
int result = uriNormalizeSyntaxExMmA(&uriparser_uris->normalized_uri, uriparser_uris->normalization_mask, mm);
ZEND_ASSERT(result == URI_SUCCESS);
}

uriparser_uris->normalized_uri_initialized = true;
}

if (uriparser_uris->normalization_mask == URI_NORMALIZED) {
return &uriparser_uris->uri;
}

return &uriparser_uris->normalized_uri;
}

Expand Down
Loading