From 6d9ed3698b1b7350c36739549118a7a297577d71 Mon Sep 17 00:00:00 2001 From: Andy Heninger Date: Tue, 12 Dec 2017 21:49:51 +0000 Subject: [PATCH] ICU-13457 Adjust Calendar buffer overrun fix for compatibility with AIX compiler, and with older versions of gcc. Also incorporate Jungshik's review comment. X-SVN-Rev: 40723 --- icu4c/source/i18n/calendar.cpp | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/icu4c/source/i18n/calendar.cpp b/icu4c/source/i18n/calendar.cpp index 4e22dff2644..092dc4c1d9e 100644 --- a/icu4c/source/i18n/calendar.cpp +++ b/icu4c/source/i18n/calendar.cpp @@ -706,10 +706,10 @@ fTime(0), fLenient(TRUE), fZone(NULL), fRepeatedWallTime(UCAL_WALLTIME_LAST), -fSkippedWallTime(UCAL_WALLTIME_LAST), -validLocale(""), -actualLocale("") +fSkippedWallTime(UCAL_WALLTIME_LAST) { + validLocale[0] = 0; + actualLocale[0] = 0; clear(); if (U_FAILURE(success)) { return; @@ -734,10 +734,10 @@ fTime(0), fLenient(TRUE), fZone(NULL), fRepeatedWallTime(UCAL_WALLTIME_LAST), -fSkippedWallTime(UCAL_WALLTIME_LAST), -validLocale(""), -actualLocale("") +fSkippedWallTime(UCAL_WALLTIME_LAST) { + validLocale[0] = 0; + actualLocale[0] = 0; if (U_FAILURE(success)) { return; } @@ -768,10 +768,10 @@ fTime(0), fLenient(TRUE), fZone(NULL), fRepeatedWallTime(UCAL_WALLTIME_LAST), -fSkippedWallTime(UCAL_WALLTIME_LAST), -validLocale(""), -actualLocale("") +fSkippedWallTime(UCAL_WALLTIME_LAST) { + validLocale[0] = 0; + actualLocale[0] = 0; if (U_FAILURE(success)) { return; } @@ -830,6 +830,8 @@ Calendar::operator=(const Calendar &right) fNextStamp = right.fNextStamp; uprv_strncpy(validLocale, right.validLocale, sizeof(validLocale)); uprv_strncpy(actualLocale, right.actualLocale, sizeof(actualLocale)); + validLocale[sizeof(validLocale)-1] = 0; + actualLocale[sizeof(validLocale)-1] = 0; } return *this; -- 2.40.0