view Resources/Patches/dcmtk-3.6.0-dulparse-vulnerability.patch @ 4035:cc6ed76bba27

added contextual privateCreators dico to ParsedDicomFile -> this allows you not to have to define a DefaultPrivateCreator. This was tested only in the scope of C-Find requests but should not have impact on other parts since it is not used out of C-Find right now
author Alain Mazy <alain@mazy.be>
date Wed, 10 Jun 2020 10:28:01 +0200
parents 6ac6193a7935
children
line wrap: on
line source

diff -urEb dcmtk-3.6.0.orig/dcmnet/libsrc/dulparse.cc dcmtk-3.6.0/dcmnet/libsrc/dulparse.cc
--- dcmtk-3.6.0.orig/dcmnet/libsrc/dulparse.cc	2010-12-01 09:26:36.000000000 +0100
+++ dcmtk-3.6.0/dcmnet/libsrc/dulparse.cc	2016-12-02 15:58:49.930540033 +0100
@@ -393,6 +393,8 @@
                     return cond;
 
                 buf += length;
+                if (presentationLength < length)
+                  return EC_MemoryExhausted;
                 presentationLength -= length;
                 DCMNET_TRACE("Successfully parsed Abstract Syntax");
                 break;
@@ -404,12 +406,16 @@
                 cond = LST_Enqueue(&context->transferSyntaxList, (LST_NODE*)subItem);
                 if (cond.bad()) return cond;
                 buf += length;
+                if (presentationLength < length)
+                  return EC_MemoryExhausted;
                 presentationLength -= length;
                 DCMNET_TRACE("Successfully parsed Transfer Syntax");
                 break;
             default:
                 cond = parseDummy(buf, &length, presentationLength);
                 buf += length;
+                if (presentationLength < length)
+                  return EC_MemoryExhausted;
                 presentationLength -= length;
                 break;
             }