Page MenuHomePhabricator

Crash on DICOM loading
Closed, ResolvedPublic

Description

Certain private tags can cause a crash in the CEST IO Module. This was observed in the dicom2nrrd conversion in the dcipher/JIP context, reference data is not sharable, but we could track down the problem to

https://phabricator.mitk.org/source/mitk/browse/master/Modules/CEST/src/mitkCustomTagParser.cpp$269

There is a lack of tests for valid input here.

Event Timeline

nolden triaged this task as Normal priority.Dec 19 2019, 1:54 PM
nolden created this task.

@k656s Is the example data available on our network drives?

kislinsk added a comment.EditedDec 20 2019, 9:13 AM

Despite all of the obvious flaws of the parsing code around the highlighted line linked above, the particular reason for the crash is a missing check against npos regarding the results of the find() calls. Even without a more comprehensive fix, the hex number string extraction and conversion to ASCII characters should be enhanced by checking against non-ASCII hex values.

kislinsk claimed this task.Dec 20 2019, 9:40 AM
kislinsk closed this task as Resolved.Dec 20 2019, 9:55 AM
kislinsk reopened this task as Open.Dec 20 2019, 12:48 PM

CI

These tests fail after my "improvements":

mitkCESTDICOMReaderServiceTest
mitkCustomTagParserTest

kislinsk closed this task as Resolved.Dec 20 2019, 3:30 PM