From b4f59ba80f0f425e0b5493ed7b86c451d9d2f45d Mon Sep 17 00:00:00 2001 From: Janusz Majnert Date: Tue, 31 Oct 2023 15:04:46 +0100 Subject: [PATCH] APER - Check that calculated rawLength is not zero --- pkg/asn1/aper/aper.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkg/asn1/aper/aper.go b/pkg/asn1/aper/aper.go index d4cf10d..0fee726 100644 --- a/pkg/asn1/aper/aper.go +++ b/pkg/asn1/aper/aper.go @@ -578,6 +578,10 @@ func (pd *perBitData) parseInteger(extensed bool, lowerBoundPtr *int64, upperBou rawLength = uint(pd.bytes[pd.byteOffset]) pd.byteOffset++ log.Debugf("%s", perBitLog(8, pd.byteOffset, pd.bitsOffset, uint64(rawLength))) + if rawLength == 0 { + err := fmt.Errorf("rawLength cannot be 0") + return int64(0), err + } } else if valueRange <= 65536 { rawValue, err := pd.parseConstraintValue(valueRange) if err != nil {