From 671224a544876da51d189c0d8f70782d78e95d39 Mon Sep 17 00:00:00 2001 From: Gwenhael Goavec-Merou Date: Fri, 21 Mar 2025 06:47:30 +0100 Subject: [PATCH] mcsParser: check if _bit_data size is not larger than bitstream --- src/mcsParser.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mcsParser.cpp b/src/mcsParser.cpp index cba83fe..c6c28be 100644 --- a/src/mcsParser.cpp +++ b/src/mcsParser.cpp @@ -92,10 +92,10 @@ int McsParser::parse() case 4: sscanf((char*)&str[DATA_BASE], "%4x", &loc_addr); _base_addr = (loc_addr << 16); - if ((size_t)_base_addr > _bit_data.size()) - _bit_data.resize(_base_addr); if (_base_addr * 8 > _bit_length) _bit_length = _base_addr * 8; + if (_bit_length > _bit_data.size() * 8) + _bit_data.resize(_bit_length / 8); sum += (loc_addr & 0xff) + ((loc_addr >> 8) & 0xff); break; default: