From f5e275aec0c5a4c68cd62db838ba22ba7af7b664 Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Thu, 26 Mar 2020 19:54:29 +0100 Subject: csn1: verify enough bits present to decode whole CSN_UINT_ARRAY Change-Id: I4a762a8fec4153b53e10df1ec8ba3708c1f47649 --- src/csn1.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/csn1.c b/src/csn1.c index 1b3cc55f..78444bb9 100644 --- a/src/csn1.c +++ b/src/csn1.c @@ -338,7 +338,7 @@ csnStreamDecoder(csnStream_t* ar, const CSN_DESCR* pDescr, struct bitvec *vector nCount = *pui16DATA(data, nCount); } - if (remaining_bits_len >= no_of_bits) + if (remaining_bits_len >= (no_of_bits * nCount)) { remaining_bits_len -= (no_of_bits*nCount); if (no_of_bits <= 8) @@ -781,7 +781,7 @@ csnStreamDecoder(csnStream_t* ar, const CSN_DESCR* pDescr, struct bitvec *vector nCount = *pui16DATA(data, nCount); } - if (remaining_bits_len >= no_of_bits) + if (remaining_bits_len >= (no_of_bits * nCount)) { remaining_bits_len -= (no_of_bits * nCount); if (no_of_bits <= 8) @@ -1650,7 +1650,7 @@ gint16 csnStreamEncoder(csnStream_t* ar, const CSN_DESCR* pDescr, struct bitvec nCount = *pui16DATA(data, nCount); } - if (remaining_bits_len >= no_of_bits) + if (remaining_bits_len >= (no_of_bits * nCount)) { if (no_of_bits <= 8) { @@ -2067,7 +2067,7 @@ gint16 csnStreamEncoder(csnStream_t* ar, const CSN_DESCR* pDescr, struct bitvec nCount = *pui16DATA(data, nCount); } - if (remaining_bits_len >= no_of_bits) + if (remaining_bits_len >= (no_of_bits * nCount)) { if (no_of_bits <= 8) { -- cgit v1.2.3