From e5a2001a3331dfc669f9969fd9a5f661579ccad9 Mon Sep 17 00:00:00 2001 From: Parshintsev Anatoly Date: Sat, 3 Aug 2024 22:10:57 +0300 Subject: [PATCH] binarybuffer: add asserts for the number of requested bits for get/set functions Change-Id: Ieca5b4e690c9713ad60dc9d8c223c2d64822e2f5 Signed-off-by: Parshintsev Anatoly Reviewed-on: https://review.openocd.org/c/openocd/+/8427 Tested-by: jenkins Reviewed-by: Tomas Vanek Reviewed-by: Jan Matyas Reviewed-by: Antonio Borneo --- src/helper/binarybuffer.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/helper/binarybuffer.h b/src/helper/binarybuffer.h index 103a48c5c5..df4199837f 100644 --- a/src/helper/binarybuffer.h +++ b/src/helper/binarybuffer.h @@ -34,6 +34,7 @@ static inline void buf_set_u32(uint8_t *_buffer, unsigned first, unsigned num, uint32_t value) { + assert(num >= 1 && num <= 32); uint8_t *buffer = _buffer; if ((num == 32) && (first == 0)) { @@ -64,6 +65,7 @@ static inline void buf_set_u32(uint8_t *_buffer, static inline void buf_set_u64(uint8_t *_buffer, unsigned first, unsigned num, uint64_t value) { + assert(num >= 1 && num <= 64); uint8_t *buffer = _buffer; if ((num == 32) && (first == 0)) { @@ -102,6 +104,7 @@ static inline void buf_set_u64(uint8_t *_buffer, static inline uint32_t buf_get_u32(const uint8_t *_buffer, unsigned first, unsigned num) { + assert(num >= 1 && num <= 32); const uint8_t *buffer = _buffer; if ((num == 32) && (first == 0)) { @@ -131,6 +134,7 @@ static inline uint32_t buf_get_u32(const uint8_t *_buffer, static inline uint64_t buf_get_u64(const uint8_t *_buffer, unsigned first, unsigned num) { + assert(num >= 1 && num <= 64); const uint8_t *buffer = _buffer; if ((num == 32) && (first == 0)) {