diff options
Diffstat (limited to 'external/icu/ubsan.patch.1')
-rw-r--r-- | external/icu/ubsan.patch.1 | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/external/icu/ubsan.patch.1 b/external/icu/ubsan.patch.1 new file mode 100644 index 000000000..1c10f8cef --- /dev/null +++ b/external/icu/ubsan.patch.1 @@ -0,0 +1,31 @@ +diff -ur icu.org/source/tools/genrb/rbutil.c icu/source/tools/genrb/rbutil.c +--- icu.org/source/tools/genrb/rbutil.c 2020-10-28 22:21:12.000000000 +0100 ++++ icu/source/tools/genrb/rbutil.c 2020-11-16 19:50:44.005119253 +0100 +@@ -30,7 +30,12 @@ + get_dirname(char *dirname, + const char *filename) + { +- const char *lastSlash = uprv_strrchr(filename, U_FILE_SEP_CHAR) + 1; ++ const char *lastSlash = uprv_strrchr(filename, U_FILE_SEP_CHAR); ++ if(lastSlash == NULL) { ++ lastSlash = filename; ++ } else { ++ ++lastSlash; ++ } + + if(lastSlash>filename) { + uprv_strncpy(dirname, filename, (lastSlash - filename)); +@@ -46,7 +51,12 @@ + const char *filename) + { + /* strip off any leading directory portions */ +- const char *lastSlash = uprv_strrchr(filename, U_FILE_SEP_CHAR) + 1; ++ const char *lastSlash = uprv_strrchr(filename, U_FILE_SEP_CHAR); ++ if(lastSlash == NULL) { ++ lastSlash = filename; ++ } else { ++ ++lastSlash; ++ } + char *lastDot; + + if(lastSlash>filename) { |