2d843bb104
plus further work in i18npool to make that build adapt i18npool to ICU 53 upgrade, fdo#77071 Korean charset collator can't be built from ko_charset.txt because of "The runtime code decomposes Hangul syllables on the fly, with recursive processing but without making the Jamo pieces visible for matching. It does not work with certain types of contextual mappings." "While handling a Hangul syllable, contractions starting with Jamo L or V would not see the following Jamo of that syllable." (this is where we bail out already with the first syllable of ko_charset.txt) Another condition to fail is described as "A contraction ending with Jamo L or L+V would require generating Hangul syllables in addTailComposites() (588 for a Jamo L), or decomposing a following Hangul syllable on the fly, during contraction matching." Excluded the file from the build for ICU >=53 and hope that ICU in the mean time handles Korean collation correctly. Additionally, ICU 53 took ages (if it would had finished at all) to build the collator from zh_TW_charset.txt because of the \u#### escaped notation. Converted the file's content to characters using http://www.rishida.net/tools/conversion/ Change-Id: I64213214b4870e7077f72b95fee1ddc9782c2b21 Reviewed-on: https://gerrit.libreoffice.org/9204 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Eike Rathke <erack@redhat.com>
30 lines
1.2 KiB
Diff
30 lines
1.2 KiB
Diff
I: Statement might be overflowing a buffer in strncat. Common mistake:
|
|
BAD: strncat(buffer,charptr,sizeof(buffer)) is wrong, it takes the left over size as 3rd argument
|
|
GOOD: strncat(buffer,charptr,sizeof(buffer)-strlen(buffer)-1)
|
|
E: icu bufferoverflowstrncat pkgdata.cpp:299:87
|
|
|
|
---
|
|
source/tools/pkgdata/pkgdata.cpp | 6 +++---
|
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
|
|
|
Index: icu/source/tools/pkgdata/pkgdata.cpp
|
|
===================================================================
|
|
--- build/icu.orig/source/tools/pkgdata/pkgdata.cpp
|
|
+++ build/icu/source/tools/pkgdata/pkgdata.cpp
|
|
@@ -2060,12 +2060,12 @@
|
|
const char cmd[] = "icu-config --incpkgdatafile";
|
|
|
|
/* #1 try the same path where pkgdata was called from. */
|
|
- findDirname(progname, cmdBuf, 1024, &status);
|
|
+ findDirname(progname, cmdBuf, sizeof(cmdBuf), &status);
|
|
if(U_SUCCESS(status)) {
|
|
if (cmdBuf[0] != 0) {
|
|
- uprv_strncat(cmdBuf, U_FILE_SEP_STRING, 1024);
|
|
+ uprv_strncat(cmdBuf, U_FILE_SEP_STRING, sizeof(cmdBuf)-1-strlen(cmdBuf));
|
|
}
|
|
- uprv_strncat(cmdBuf, cmd, 1023);
|
|
+ uprv_strncat(cmdBuf, cmd, sizeof(cmdBuf)-1-strlen(cmdBuf));
|
|
|
|
if(verbose) {
|
|
fprintf(stdout, "# Calling icu-config: %s\n", cmdBuf);
|
|
|