]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
datasets: fix new -Wshorten-64-to-32 warning
authorPhilippe Antoine <pantoine@oisf.net>
Thu, 27 Mar 2025 13:55:32 +0000 (14:55 +0100)
committerVictor Julien <victor@inliniac.net>
Wed, 7 May 2025 11:59:55 +0000 (13:59 +0200)
Ticket: #6186

src/datasets.c

index c0c8a9b3d7d007239f4fd9db31092f95b2c3f75f..8a734d41fbcbdb3fdd2c41ad2b8fda0ce19757ae 100644 (file)
@@ -1370,7 +1370,11 @@ static int DatasetOpSerialized(Dataset *set, const char *string, DatasetOpFunc D
 
     switch (set->type) {
         case DATASET_TYPE_STRING: {
-            uint32_t decoded_size = SCBase64DecodeBufferSize(strlen(string));
+            if (strlen(string) > UINT16_MAX) {
+                // size check before cast and stack allocation
+                return -1;
+            }
+            uint32_t decoded_size = SCBase64DecodeBufferSize((uint32_t)strlen(string));
             uint8_t decoded[decoded_size];
             uint32_t num_decoded = SCBase64Decode(
                     (const uint8_t *)string, strlen(string), SCBase64ModeStrict, decoded);