# HG changeset patch # User Sebastien Jodogne # Date 1448981003 -3600 # Node ID e2c3d752ee1af985a6ca50ad9844a008a92d4cb0 # Parent b7d3d3b182cfe7e340d9a6d190c21734f027a9b4 prevent too long tags to be inserted diff -r b7d3d3b182cf -r e2c3d752ee1a CMakeLists.txt --- a/CMakeLists.txt Tue Dec 01 15:06:06 2015 +0100 +++ b/CMakeLists.txt Tue Dec 01 15:43:23 2015 +0100 @@ -376,6 +376,7 @@ -DORTHANC_VERSION="${ORTHANC_VERSION}" -DORTHANC_DATABASE_VERSION=${ORTHANC_DATABASE_VERSION} -DORTHANC_ENABLE_LOGGING=1 + -DORTHANC_MAXIMUM_TAG_LENGTH=256 ) list(LENGTH OPENSSL_SOURCES OPENSSL_SOURCES_LENGTH) diff -r b7d3d3b182cf -r e2c3d752ee1a OrthancServer/DicomInstanceToStore.cpp --- a/OrthancServer/DicomInstanceToStore.cpp Tue Dec 01 15:06:06 2015 +0100 +++ b/OrthancServer/DicomInstanceToStore.cpp Tue Dec 01 15:43:23 2015 +0100 @@ -114,7 +114,7 @@ *parsed_.GetContent().GetDcmtkObject().getDataset(), DicomToJsonFormat_Full, DicomToJsonFlags_Default, - 256 /* max string length */); + ORTHANC_MAXIMUM_TAG_LENGTH); } } diff -r b7d3d3b182cf -r e2c3d752ee1a OrthancServer/FromDcmtkBridge.cpp --- a/OrthancServer/FromDcmtkBridge.cpp Tue Dec 01 15:06:06 2015 +0100 +++ b/OrthancServer/FromDcmtkBridge.cpp Tue Dec 01 15:43:23 2015 +0100 @@ -376,7 +376,15 @@ { std::string s(c); std::string utf8 = Toolbox::ConvertToUtf8(s, encoding); - return new DicomValue(utf8, false); + + if (utf8.size() > ORTHANC_MAXIMUM_TAG_LENGTH) + { + return new DicomValue; // Create a NULL value + } + else + { + return new DicomValue(utf8, false); + } } } diff -r b7d3d3b182cf -r e2c3d752ee1a OrthancServer/Internals/StoreScp.cpp --- a/OrthancServer/Internals/StoreScp.cpp Tue Dec 01 15:06:06 2015 +0100 +++ b/OrthancServer/Internals/StoreScp.cpp Tue Dec 01 15:43:23 2015 +0100 @@ -171,7 +171,7 @@ FromDcmtkBridge::ToJson(dicomJson, **imageDataSet, DicomToJsonFormat_Full, DicomToJsonFlags_Default, - 256 /* max string length */); + ORTHANC_MAXIMUM_TAG_LENGTH); if (!FromDcmtkBridge::SaveToMemoryBuffer(buffer, **imageDataSet)) {