# HG changeset patch # User Sebastien Jodogne # Date 1447928143 -3600 # Node ID b769623c806cc601e5b13674896bd36add048fce # Parent 91a5d39ec665a0c3e6b674bdae2a93eacaca9aa7 safety check diff -r 91a5d39ec665 -r b769623c806c OrthancServer/FromDcmtkBridge.cpp --- a/OrthancServer/FromDcmtkBridge.cpp Wed Nov 18 17:26:00 2015 +0100 +++ b/OrthancServer/FromDcmtkBridge.cpp Thu Nov 19 11:15:43 2015 +0100 @@ -1073,6 +1073,9 @@ case EVR_TM: return ValueRepresentation_Time; + case EVR_SQ: + return ValueRepresentation_Sequence; + default: return ValueRepresentation_Other; } diff -r 91a5d39ec665 -r b769623c806c OrthancServer/Search/IFindConstraint.cpp --- a/OrthancServer/Search/IFindConstraint.cpp Wed Nov 18 17:26:00 2015 +0100 +++ b/OrthancServer/Search/IFindConstraint.cpp Thu Nov 19 11:15:43 2015 +0100 @@ -33,12 +33,14 @@ #include "../PrecompiledHeadersServer.h" #include "IFindConstraint.h" -#include "../FromDcmtkBridge.h" #include "ListConstraint.h" #include "RangeConstraint.h" #include "ValueConstraint.h" #include "WildcardConstraint.h" +#include "../FromDcmtkBridge.h" +#include "../../Core/OrthancException.h" + namespace Orthanc { IFindConstraint* IFindConstraint::ParseDicomConstraint(const DicomTag& tag, @@ -47,6 +49,11 @@ { ValueRepresentation vr = FromDcmtkBridge::GetValueRepresentation(tag); + if (vr == ValueRepresentation_Sequence) + { + throw OrthancException(ErrorCode_ParameterOutOfRange); + } + if ((vr == ValueRepresentation_Date || vr == ValueRepresentation_DateTime || vr == ValueRepresentation_Time) && diff -r 91a5d39ec665 -r b769623c806c OrthancServer/ServerEnumerations.h --- a/OrthancServer/ServerEnumerations.h Wed Nov 18 17:26:00 2015 +0100 +++ b/OrthancServer/ServerEnumerations.h Thu Nov 19 11:15:43 2015 +0100 @@ -98,7 +98,8 @@ ValueRepresentation_PatientName, ValueRepresentation_Date, ValueRepresentation_DateTime, - ValueRepresentation_Time + ValueRepresentation_Time, + ValueRepresentation_Sequence }; enum DicomToJsonFormat