diff options
Diffstat (limited to 'external/redland/raptor/ubsan.patch')
-rw-r--r-- | external/redland/raptor/ubsan.patch | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/external/redland/raptor/ubsan.patch b/external/redland/raptor/ubsan.patch new file mode 100644 index 000000000..641d60bb7 --- /dev/null +++ b/external/redland/raptor/ubsan.patch @@ -0,0 +1,25 @@ +--- src/raptor_rfc2396.c ++++ src/raptor_rfc2396.c +@@ -386,7 +386,7 @@ + } + + +- if(prev && s == (cur+2) && cur[0] == '.' && cur[1] == '.') { ++ if(prev && cur && s == (cur+2) && cur[0] == '.' && cur[1] == '.') { + /* Remove <component>/.. at the end of the path */ + *prev = '\0'; + path_len -= (s-prev); +--- src/raptor_uri.c ++++ src/raptor_uri.c +@@ -1336,9 +1336,9 @@ + !strncmp((const char*)base_detail->scheme, + (const char*)reference_detail->scheme, + base_detail->scheme_len) && +- !strncmp((const char*)base_detail->authority, ++ (base_detail->authority_len == 0 || !strncmp((const char*)base_detail->authority, + (const char*)reference_detail->authority, +- base_detail->authority_len)) { ++ base_detail->authority_len))) { + + if(!base_detail->path) { + if(reference_detail->path) { |