Skip to content

Commit 05e08e6

Browse files
committed
Fix segfault issue from empty metadata
`metadata_map_` would be nullptr if `metadata_map` is null. Downstream might assume `metadata_map_` is always non-null, so it is safer to create an empty map if `metadata_map` is null.
1 parent be5b158 commit 05e08e6

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

cpp/src/arrow/flight/sql/column_metadata.cc

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,10 @@ const char* ColumnMetadata::kIsSearchable = "ARROW:FLIGHT:SQL:IS_SEARCHABLE";
5858
const char* ColumnMetadata::kRemarks = "ARROW:FLIGHT:SQL:REMARKS";
5959

6060
ColumnMetadata::ColumnMetadata(
61-
std::shared_ptr<const arrow::KeyValueMetadata> metadata_map)
62-
: metadata_map_(std::move(metadata_map)) {}
61+
std::shared_ptr<const arrow::KeyValueMetadata> metadata_map) {
62+
metadata_map_ = std::move(metadata_map ? metadata_map
63+
: std::make_shared<arrow::KeyValueMetadata>());
64+
}
6365

6466
arrow::Result<std::string> ColumnMetadata::GetCatalogName() const {
6567
return metadata_map_->Get(kCatalogName);

0 commit comments

Comments
 (0)