File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -125,17 +125,33 @@ rmqt::Result<> CompressionTransformerImpl::inverseTransform(
125125 bsl::shared_ptr<bsl::vector<uint8_t > >& data,
126126 rmqt::Properties& props)
127127{
128+
128129 BSLS_ASSERT (props.headers );
129- int64_t originalSize =
130- (*props.headers )[" sdk.transform.compression.size" ].the <int64_t >();
130+
131+ rmqt::FieldTable::const_iterator sizeIt =
132+ props.headers ->find (" sdk.transform.compression.size" );
133+ if (sizeIt == props.headers ->end () || !sizeIt->second .is <int64_t >()) {
134+ BALL_LOG_ERROR << " Missing or invalid compression size header" ;
135+ return rmqt::Result<>(" Missing or invalid compression size header" );
136+ }
137+
138+ int64_t originalSize = sizeIt->second .the <int64_t >();
139+
131140 if (originalSize <= 0 ) {
132141 BALL_LOG_ERROR << " Invalid original size for decompression: "
133142 << originalSize;
134143 return rmqt::Result<>(" Invalid original size for decompression: " +
135144 bsl::to_string (originalSize));
136145 }
137- bsl::string compressionAlg =
138- (*props.headers )[" sdk.transform.compression.alg" ].the <bsl::string>();
146+
147+ rmqt::FieldTable::const_iterator algIt =
148+ props.headers ->find (" sdk.transform.compression.alg" );
149+ if (algIt == props.headers ->end () || !algIt->second .is <bsl::string>()) {
150+ BALL_LOG_ERROR << " Missing or invalid compression algorithm header" ;
151+ return rmqt::Result<>(
152+ " Missing or invalid compression algorithm header" );
153+ }
154+ bsl::string compressionAlg = algIt->second .the <bsl::string>();
139155
140156 rmqt::Result<> result;
141157 if (compressionAlg == " zstd" ) {
You can’t perform that action at this time.
0 commit comments