ICU-11765 fix u_charsToUChars() string length and make its destination buffer large enough

X-SVN-Rev: 37894
This commit is contained in:
Markus Scherer 2015-09-07 00:38:38 +00:00
parent 079f95c9a9
commit cd67ec8ed6

View File

@ -244,12 +244,13 @@ static const NumCodeTestEntry NUMCODE_TESTDATA[] = {
};
static void TestNumericCode(void) {
UChar code[4];
UChar code[8]; // at least one longer than the longest alphaCode
int32_t i;
int32_t numCode;
for (i = 0; NUMCODE_TESTDATA[i].alphaCode; i++) {
u_charsToUChars(NUMCODE_TESTDATA[i].alphaCode, code, sizeof(code)/sizeof(code[0]));
int32_t length = uprv_strlen(NUMCODE_TESTDATA[i].alphaCode);
u_charsToUChars(NUMCODE_TESTDATA[i].alphaCode, code, length + 1); // +1 includes the NUL
numCode = ucurr_getNumericCode(code);
if (numCode != NUMCODE_TESTDATA[i].numericCode) {
log_data_err("Error: ucurr_getNumericCode returned %d for currency %s, expected - %d\n",