|
@@ -0,0 +1,27 @@
|
|
|
+From 033ab5b6488250c8c3b838f25a7cbc3e099230bb Mon Sep 17 00:00:00 2001
|
|
|
+From: Michael Zillgith <michael.zillgith@mz-automation.de>
|
|
|
+Date: Wed, 12 Aug 2020 07:25:37 +0200
|
|
|
+Subject: [PATCH] - COTP: fixed possible heap buffer overflow when handling
|
|
|
+ message with invalid (zero) value in length field (#250)
|
|
|
+
|
|
|
+[Retrieved from:
|
|
|
+https://github.com/mz-automation/libiec61850/commit/033ab5b6488250c8c3b838f25a7cbc3e099230bb]
|
|
|
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
|
|
+---
|
|
|
+ src/mms/iso_cotp/cotp.c | 3 +++
|
|
|
+ 1 file changed, 3 insertions(+)
|
|
|
+
|
|
|
+diff --git a/src/mms/iso_cotp/cotp.c b/src/mms/iso_cotp/cotp.c
|
|
|
+index cbb34b36..8c37d262 100644
|
|
|
+--- a/src/mms/iso_cotp/cotp.c
|
|
|
++++ b/src/mms/iso_cotp/cotp.c
|
|
|
+@@ -720,6 +720,9 @@ CotpConnection_readToTpktBuffer(CotpConnection* self)
|
|
|
+ goto exit_waiting;
|
|
|
+ }
|
|
|
+
|
|
|
++ if (self->packetSize <= bufPos)
|
|
|
++ goto exit_error;
|
|
|
++
|
|
|
+ readBytes = readFromSocket(self, buffer + bufPos, self->packetSize - bufPos);
|
|
|
+
|
|
|
+ if (readBytes < 0)
|