Index: source/common/uloc.c |
=================================================================== |
--- source/common/uloc.c (revision 113138) |
+++ source/common/uloc.c (working copy) |
@@ -1797,7 +1797,7 @@ |
int32_t variantLen = _deleteVariant(variant, uprv_min(variantSize, (nameCapacity-len)), variantToCompare, n); |
len -= variantLen; |
if (variantLen > 0) { |
- if (name[len-1] == '_') { /* delete trailing '_' */ |
+ if (len > 0 && name[len-1] == '_') { /* delete trailing '_' */ |
--len; |
} |
addKeyword = VARIANT_MAP[j].keyword; |
@@ -1805,7 +1805,7 @@ |
break; |
} |
} |
- if (name[len-1] == '_') { /* delete trailing '_' */ |
+ if (len > 0 && len <= nameCapacity && name[len-1] == '_') { /* delete trailing '_' */ |
--len; |
} |
} |