This is an automated email from the ASF dual-hosted git repository.

yiguolei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new c1a1275870 [fix](memory) Fix parquet load stack overflow (#16537)
c1a1275870 is described below

commit c1a1275870ff2e79d9614ee4465718c16682b5c5
Author: Xinyi Zou <[email protected]>
AuthorDate: Fri Feb 10 08:48:12 2023 +0800

    [fix](memory) Fix parquet load stack overflow (#16537)
---
 be/src/vec/exec/format/parquet/parquet_thrift_util.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/be/src/vec/exec/format/parquet/parquet_thrift_util.h 
b/be/src/vec/exec/format/parquet/parquet_thrift_util.h
index 269f6a4368..184d4c786a 100644
--- a/be/src/vec/exec/format/parquet/parquet_thrift_util.h
+++ b/be/src/vec/exec/format/parquet/parquet_thrift_util.h
@@ -59,12 +59,12 @@ static Status parse_thrift_footer(io::FileReaderSPtr file,
     }
     tparquet::FileMetaData t_metadata;
     // deserialize footer
-    uint8_t meta_buff[metadata_size];
-    Slice res(meta_buff, metadata_size);
+    std::unique_ptr<uint8_t[]> meta_buff(new uint8_t[metadata_size]);
+    Slice res(meta_buff.get(), metadata_size);
     RETURN_IF_ERROR(file->read_at(file_size - PARQUET_FOOTER_SIZE - 
metadata_size, res, io_ctx,
                                   &bytes_read));
     DCHECK_EQ(bytes_read, metadata_size);
-    RETURN_IF_ERROR(deserialize_thrift_msg(meta_buff, &metadata_size, true, 
&t_metadata));
+    RETURN_IF_ERROR(deserialize_thrift_msg(meta_buff.get(), &metadata_size, 
true, &t_metadata));
     file_metadata.reset(new FileMetaData(t_metadata));
     RETURN_IF_ERROR(file_metadata->init_schema());
     return Status::OK();


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to