Skip to content

Commit 153b065

Browse files
committed
try fix ci
1 parent b998842 commit 153b065

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

cpp/src/arrow/array/builder_binary.h

+14-4
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ class BaseBinaryBuilder
307307
Status AppendBinaryWithLengths(std::string_view binary, const int32_t* value_lengths,
308308
int64_t length) {
309309
ARROW_RETURN_NOT_OK(Reserve(length));
310-
UnsafeAppendToBitmap(/*valid_bytes=*/nullptr, length);
310+
UnsafeAppendToBitmap(/*valid_bytes=*/NULLPTR, length);
311311
// All values is valid
312312
int64_t accum_length = 0;
313313
for (int64_t i = 0; i < length; ++i) {
@@ -331,7 +331,7 @@ class BaseBinaryBuilder
331331
Status AppendBinaryWithLengths(std::string_view binary, const int32_t* value_lengths,
332332
int64_t length, int64_t null_count,
333333
const uint8_t* valid_bits, int64_t valid_bits_offset) {
334-
if (valid_bits == nullptr || null_count == 0) {
334+
if (valid_bits == NULLPTR || null_count == 0) {
335335
return AppendBinaryWithLengths(binary, value_lengths, length);
336336
}
337337
ARROW_RETURN_NOT_OK(Reserve(length));
@@ -351,13 +351,23 @@ class BaseBinaryBuilder
351351
RETURN_NOT_OK(VisitNullBitmapInline(
352352
valid_bits, valid_bits_offset, length, null_count,
353353
[&]() {
354-
offsets_builder_.UnsafeAppend(original_offset + accum_length);
354+
if (ARROW_PREDICT_FALSE(original_offset + accum_length) >
355+
std::numeric_limits<int32_t>::max()) {
356+
return Status::Invalid("Binary data is too long");
357+
}
358+
offsets_builder_.UnsafeAppend(
359+
static_cast<int32_t>(original_offset + accum_length));
355360
accum_length += value_lengths[length_idx];
356361
++length_idx;
357362
return Status::OK();
358363
},
359364
[&]() {
360-
offsets_builder_.UnsafeAppend(original_offset + accum_length);
365+
if (ARROW_PREDICT_FALSE(original_offset + accum_length) >
366+
std::numeric_limits<int32_t>::max()) {
367+
return Status::Invalid("Binary data is too long");
368+
}
369+
offsets_builder_.UnsafeAppend(
370+
static_cast<int32_t>(original_offset + accum_length));
361371
return Status::OK();
362372
}));
363373
return Status::OK();

0 commit comments

Comments
 (0)