Initial commit
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
diff --git a/icu/source/test/intltest/ssearch.cpp b/icu/source/test/intltest/ssearch.cpp
|
||||
index a13df7f..615ea53 100644
|
||||
--- a/icu/source/test/intltest/ssearch.cpp
|
||||
+++ b/icu/source/test/intltest/ssearch.cpp
|
||||
@@ -531,12 +531,26 @@ static char *printOffsets(char *buffer, size_t n, OrderList &list)
|
||||
|
||||
for(int32_t i = 0; i < size; i += 1) {
|
||||
const Order *order = list.get(i);
|
||||
+ size_t remaining = n - static_cast<size_t>(s - buffer);
|
||||
+
|
||||
+ if (remaining == 0) {
|
||||
+ break;
|
||||
+ }
|
||||
|
||||
if (i != 0) {
|
||||
- s += snprintf(s, n, ", ");
|
||||
+ int32_t written = snprintf(s, remaining, ", ");
|
||||
+ if (written < 0 || static_cast<size_t>(written) >= remaining) {
|
||||
+ break;
|
||||
+ }
|
||||
+ s += written;
|
||||
+ remaining -= written;
|
||||
}
|
||||
|
||||
- s += snprintf(s, n, "(%d, %d)", order->lowOffset, order->highOffset);
|
||||
+ int32_t written = snprintf(s, remaining, "(%d, %d)", order->lowOffset, order->highOffset);
|
||||
+ if (written < 0 || static_cast<size_t>(written) >= remaining) {
|
||||
+ break;
|
||||
+ }
|
||||
+ s += written;
|
||||
}
|
||||
|
||||
return buffer;
|
||||
@@ -549,12 +563,26 @@ static char *printOrders(char *buffer, size_t n, OrderList &list)
|
||||
|
||||
for(int32_t i = 0; i < size; i += 1) {
|
||||
const Order *order = list.get(i);
|
||||
+ size_t remaining = n - static_cast<size_t>(s - buffer);
|
||||
+
|
||||
+ if (remaining == 0) {
|
||||
+ break;
|
||||
+ }
|
||||
|
||||
if (i != 0) {
|
||||
- s += snprintf(s, n, ", ");
|
||||
+ int32_t written = snprintf(s, remaining, ", ");
|
||||
+ if (written < 0 || static_cast<size_t>(written) >= remaining) {
|
||||
+ break;
|
||||
+ }
|
||||
+ s += written;
|
||||
+ remaining -= written;
|
||||
}
|
||||
|
||||
- s += snprintf(s, n, "%8.8X", order->order);
|
||||
+ int32_t written = snprintf(s, remaining, "%8.8X", order->order);
|
||||
+ if (written < 0 || static_cast<size_t>(written) >= remaining) {
|
||||
+ break;
|
||||
+ }
|
||||
+ s += written;
|
||||
}
|
||||
|
||||
return buffer;
|
||||
Reference in New Issue
Block a user