:: commit 3e41ea363ed0f4255e1b08e07d66593b026d0c4a

Mintsuki <mintsuki@protonmail.com> — 2025-12-26 10:34

parents: 1fa4c96bb7

lib/misc: Validate input characters in oct2bin and hex2bin

diff --git a/common/lib/misc.c b/common/lib/misc.c
index 8cb96dd3..4836aff7 100644
--- a/common/lib/misc.c
+++ b/common/lib/misc.c
@@ -118,6 +118,9 @@ size_t get_trailing_zeros(uint64_t val) {
 uint32_t oct2bin(uint8_t *str, uint32_t max) {
     uint32_t value = 0;
     while (max-- > 0) {
+        if (*str < '0' || *str > '7') {
+            break;  // Invalid octal character
+        }
         value <<= 3;
         value += *str++ - '0';
     }
@@ -134,6 +137,8 @@ uint32_t hex2bin(uint8_t *str, uint32_t size) {
             value += (uint32_t)((*str) - 'A' + 10);
         else if (*str >= 'a' && *str <= 'f')
             value += (uint32_t)((*str) - 'a' + 10);
+        else
+            break;  // Invalid hex character
         str++;
     }
     return value;
tab: 248 wrap: offon