Skip to content

Commit a6c529b

Browse files
authored
Fix size overflow (#5294)
Original code resized the static if too small but doesn't use the resized array.
1 parent a8ded17 commit a6c529b

File tree

1 file changed

+7
-13
lines changed

1 file changed

+7
-13
lines changed

src/Elasticsearch.Net/Utf8Json/Internal/DoubleConversion/StringToDoubleConverter.cs

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -540,30 +540,24 @@ private static double StringToIeee(
540540

541541
buffer[buffer_pos] = (byte)'\0';
542542

543-
double? converted;
544-
if (read_as_double)
545-
{
546-
converted = StringToDouble.Strtod(new Vector(buffer, 0, buffer_pos), exponent);
547-
}
548-
else
549-
{
550-
converted = StringToDouble.Strtof(new Vector(buffer, 0, buffer_pos), exponent);
551-
}
543+
var converted = read_as_double
544+
? StringToDouble.Strtod(new Vector(buffer, 0, buffer_pos), exponent)
545+
: StringToDouble.Strtof(new Vector(buffer, 0, buffer_pos), exponent);
552546

553547
if (converted == null)
554548
{
555549
// read-again
556550
processed_characters_count = (current - input);
557551

558-
var fallbackbuffer = GetFallbackBuffer();
559-
BinaryUtil.EnsureCapacity(ref _fallbackBuffer, 0, processed_characters_count);
552+
var fallbackBuffer = GetFallbackBuffer();
553+
BinaryUtil.EnsureCapacity(ref fallbackBuffer, 0, processed_characters_count);
560554
var fallbackI = 0;
561555
while (input != current)
562556
{
563-
fallbackbuffer[fallbackI++] = input.Value;
557+
fallbackBuffer[fallbackI++] = input.Value;
564558
input++;
565559
}
566-
var laststr = Encoding.UTF8.GetString(fallbackbuffer, 0, fallbackI);
560+
var laststr = Encoding.UTF8.GetString(fallbackBuffer, 0, fallbackI);
567561
return double.Parse(laststr, CultureInfo.InvariantCulture);
568562
}
569563

0 commit comments

Comments
 (0)