Skip to content

Commit 5a56094

Browse files
committed
handle case when there is no sequence delim but null's
1 parent f0b3264 commit 5a56094

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

dcmdata/libsrc/dcpixseq.cc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,11 @@ OFCondition DcmPixelSequence::makeSubObject(DcmObject *&subObject,
216216
l_error = EC_InvalidTag;
217217
break;
218218

219+
case EVR_UL: //newTag (0x0000, 0x0000) has VR:UL
220+
if (newTag == DCM_GenericGroupLength)
221+
l_error = EC_ItemEnd;
222+
break;
223+
219224
default:
220225
newObject = new DcmPixelItem(newTag, newLength);
221226
l_error = EC_CorruptedData;

dcmdata/libsrc/dcsequen.cc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -674,6 +674,11 @@ OFCondition DcmSequenceOfItems::readSubItem(DcmInputStream &inStream,
674674
<< DCM_ItemDelimitationItem << " by sequence delimiter "
675675
<< DCM_SequenceDelimitationItem << " because it is expected here");
676676
l_error = EC_SequEnd;
677+
} else if (dcmReplaceWrongDelimitationItem.get() && (l_error == EC_CorruptedData)) {
678+
DCMDATA_DEBUG("DcmSequenceOfItems::readSubItem() replacing null bytes "
679+
<< DCM_GenericGroupLength << " by sequence delimiter "
680+
<< DCM_SequenceDelimitationItem << " because it is expected here");
681+
l_error = EC_SequEnd;
677682
} else {
678683
DCMDATA_DEBUG("DcmSequenceOfItems::readSubItem() cannot create Sub Item " << newTag);
679684
// treat this incorrect encoding as an error

0 commit comments

Comments
 (0)