protection against wrong magic word
authortkuhr <tkuhr@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 19 Jan 2004 16:36:20 +0000 (16:36 +0000)
committertkuhr <tkuhr@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 19 Jan 2004 16:36:20 +0000 (16:36 +0000)
RAW/AliRawReaderDate.cxx
RAW/AliRawReaderRoot.cxx

index a8043f6..f2f915a 100644 (file)
@@ -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!");
index 9192445..75eda6b 100644 (file)
@@ -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!");