Skip to content

Commit 0a27990

Browse files
ra: key: fix signed integer overflow (#3418)
* ra_key: fix signed integer overflow * ra_key: give proper documentation for overflow constraint. Signed-off-by: davkor <[email protected]>
1 parent d70880d commit 0a27990

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

src/flb_ra_key.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
#include <fluent-bit/flb_ra_key.h>
2727
#include <fluent-bit/record_accessor/flb_ra_parser.h>
2828
#include <msgpack.h>
29+
#include <limits.h>
2930

3031
/* Map msgpack object into flb_ra_value representation */
3132
static int msgpack_object_to_ra_value(msgpack_object o,
@@ -144,8 +145,9 @@ static int subkey_to_object(msgpack_object *map, struct mk_list *subkeys,
144145
return -1;
145146
}
146147

147-
/* Index limit */
148-
if (cur.via.array.size < entry->array_id + 1) {
148+
/* Index limit and ensure no overflow */
149+
if (entry->array_id == INT_MAX ||
150+
cur.via.array.size < entry->array_id + 1) {
149151
return -1;
150152
}
151153

0 commit comments

Comments
 (0)