From cfa94cbf10302bedc779703f874ee2e8387a0721 Mon Sep 17 00:00:00 2001 From: Michael Zillgith Date: Fri, 25 Feb 2022 18:21:45 +0100 Subject: [PATCH] - fixed - Bug in presentation layer parser can cause infinite loop (LIB61850-302) --- src/mms/iso_presentation/iso_presentation.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/mms/iso_presentation/iso_presentation.c b/src/mms/iso_presentation/iso_presentation.c index 96fd8a37..e2ee12a7 100644 --- a/src/mms/iso_presentation/iso_presentation.c +++ b/src/mms/iso_presentation/iso_presentation.c @@ -469,6 +469,10 @@ parseNormalModeParameters(IsoPresentation* self, uint8_t* buffer, int totalLengt if (DEBUG_PRES) printf("PRES: pcd list\n"); bufPos = parsePresentationContextDefinitionList(self, buffer, len, bufPos); + + if (bufPos < 0) + return -1; + break; case 0xa5: /* context-definition-result-list */