From 217b0b81e5b5e22bd8e7cfb53ac168698ea39a44 Mon Sep 17 00:00:00 2001 From: Pedro Ferreira Date: Thu, 1 Oct 2026 15:55:06 +0000 Subject: [PATCH] Validate stream column against selected columns size --- c++/src/Reader.cc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/c++/src/Reader.cc b/c++/src/Reader.cc index 804acd3d70..5d3637b1d7 100644 --- a/c++/src/Reader.cc +++ b/c++/src/Reader.cc @@ -1588,6 +1588,14 @@ namespace orc { throw ParseError(msg.str()); } + if (stream.has_kind() && stream.column() >= selectedColumns.size()) { + std::stringstream msg; + msg << "Malformed stream meta at stream index " << i << " in stripe " << stripe + << ": column=" << stream.column() << " is out of range, the file has " + << selectedColumns.size() << " columns"; + throw ParseError(msg.str()); + } + if (stream.has_kind() && selectedColumns[stream.column()]) { const auto& kind = stream.kind(); if (kind == proto::Stream_Kind_DATA || kind == proto::Stream_Kind_DICTIONARY_DATA ||