diff --git a/src/orbit_processor.cc b/src/orbit_processor.cc index 361598630652bd13c26b1a4055ee5a564103012e..92937df21d2f6a436431e9aec7e41253d85258ed 100644 --- a/src/orbit_processor.cc +++ b/src/orbit_processor.cc @@ -105,7 +105,7 @@ OrbitProcessor::FillOrbitMetadata OrbitProcessor::FillOrbit(orbit_trailer *trail // TODO: we might want to return an empty slice in order to avoid unexepected files/events // TODO: to appear and that would let CMSSW crash std::pair<uint32_t, bool> orbit_header = std::pair<uint32_t, bool>{ProcessOrbitHeader(rd_ptr)}; - uint32_t orbit = uint32_t{orbit_header.first}; + uint32_t orbit = uint32_t{orbit_header.first}; if (orbit <= 0) return{0, 0, 0}; //.second is the warning test enable bit rd_ptr += 32; // +32 to account for orbit header @@ -191,6 +191,10 @@ void OrbitProcessor::ProcessSliceImpl(Slice &input, Slice &out) { } meta = FillOrbit(trailer, rd_ptr, wr_ptr, rd_end_ptr, wr_end_ptr); + if (meta.orbit<=0) { + LOG(WARNING) << "Invalid orbit number " << meta.orbit << ". Skipping packet..."; + return; + } orbitCount = meta.counts; ++orbit_per_packet_count;