From 72dd1d4f3f90678cbce54dd6de81efd534c1a663 Mon Sep 17 00:00:00 2001 From: tkuhr Date: Mon, 19 Jan 2004 16:36:20 +0000 Subject: [PATCH] protection against wrong magic word --- RAW/AliRawReaderDate.cxx | 11 ++++++++++- RAW/AliRawReaderRoot.cxx | 8 +++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/RAW/AliRawReaderDate.cxx b/RAW/AliRawReaderDate.cxx index a8043f63193..f2f915a5aa9 100644 --- a/RAW/AliRawReaderDate.cxx +++ b/RAW/AliRawReaderDate.cxx @@ -185,7 +185,16 @@ Bool_t AliRawReaderDate::ReadMiniHeader() } fMiniHeader = (AliMiniHeader*) fPosition; fPosition += sizeof(AliMiniHeader); - CheckMiniHeader(); + if (!CheckMiniHeader()) { + Warning("ReadMiniHeader", "skipping %d bytes\n" + " run: %d event: %d %d LDC: %d GDC: %d\n", + fEnd - fPosition, fSubEvent->eventRunNb, + fSubEvent->eventId[0], fSubEvent->eventId[1], + fSubEvent->eventLdcId, fSubEvent->eventGdcId); + fCount = 0; + fPosition = fEnd; + continue; + } fCount = fMiniHeader->fSize; if (fPosition + fCount > fEnd) { // check data size in mini header and sub event Error("ReadMiniHeader", "size in mini header exceeds event size!"); diff --git a/RAW/AliRawReaderRoot.cxx b/RAW/AliRawReaderRoot.cxx index 9192445a0fb..75eda6b1c66 100644 --- a/RAW/AliRawReaderRoot.cxx +++ b/RAW/AliRawReaderRoot.cxx @@ -202,7 +202,13 @@ Bool_t AliRawReaderRoot::ReadMiniHeader() } fMiniHeader = (AliMiniHeader*) fPosition; fPosition += sizeof(AliMiniHeader); - CheckMiniHeader(); + if (!CheckMiniHeader()) { + Warning("ReadMiniHeader", "skipping %d bytes", fEnd - fPosition); + fSubEvent->GetHeader()->Dump(); + fCount = 0; + fPosition = fEnd; + continue; + } fCount = fMiniHeader->fSize; if (fPosition + fCount > fEnd) { // check data size in mini header and sub event Error("ReadMiniHeader", "size in mini header exceeds event size!"); -- 2.43.0