icu/icu-rpmlint.diff
Stephan Kulow 953a06a1a3 Accepting request 113078 from X11:common:Factory
license update: MIT and SUSE-Public-Domain
This is _not_ IBM Public License code.  (forwarded request 113073 from babelworx)

OBS-URL: https://build.opensuse.org/request/show/113078
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/icu?expand=0&rev=30
2012-04-12 07:26:42 +00:00

30 lines
1.3 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
===================================================================
--- icu.orig/source/tools/pkgdata/pkgdata.cpp
+++ icu/source/tools/pkgdata/pkgdata.cpp
@@ -1914,12 +1914,12 @@ static void loadLists(UPKGOptions *o, UE
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, 1024);
+ uprv_strncat(cmdBuf, cmd, sizeof(cmdBuf)-1-strlen(cmdBuf));
if(verbose) {
fprintf(stdout, "# Calling icu-config: %s\n", cmdBuf);