From 7a9000757ddcefbb3013c2218e5d43d92acc7e38 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Mon, 6 Dec 2021 11:45:52 +0000 Subject: [PATCH] [Minor] Backport ucl fix --- contrib/libucl/ucl_parser.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/contrib/libucl/ucl_parser.c b/contrib/libucl/ucl_parser.c index 1d285f27d..8ccbf05af 100644 --- a/contrib/libucl/ucl_parser.c +++ b/contrib/libucl/ucl_parser.c @@ -850,6 +850,10 @@ ucl_maybe_parse_number (ucl_object_t *obj, dv *= ucl_lex_num_multiplier (*p, false); } p += 2; + if (end - p > 0 && !ucl_lex_is_atom_end (*p)) { + *pos = start; + return EINVAL; + } goto set_obj; } else if (number_bytes || (p[1] == 'b' || p[1] == 'B')) { @@ -860,6 +864,10 @@ ucl_maybe_parse_number (ucl_object_t *obj, } lv *= ucl_lex_num_multiplier (*p, true); p += 2; + if (end - p > 0 && !ucl_lex_is_atom_end (*p)) { + *pos = start; + return EINVAL; + } goto set_obj; } else if (ucl_lex_is_atom_end (p[1])) { @@ -884,6 +892,10 @@ ucl_maybe_parse_number (ucl_object_t *obj, is_time = true; dv *= 60.; p += 3; + if (end - p > 0 && !ucl_lex_is_atom_end (*p)) { + *pos = start; + return EINVAL; + } goto set_obj; } } @@ -896,6 +908,10 @@ ucl_maybe_parse_number (ucl_object_t *obj, lv *= ucl_lex_num_multiplier (*p, number_bytes); } p ++; + if (end - p > 0 && !ucl_lex_is_atom_end (*p)) { + *pos = start; + return EINVAL; + } goto set_obj; } break; -- 2.39.5