Skip to content

Commit

Permalink
Fix overflow in GetHexStringCore
Browse files Browse the repository at this point in the history
  • Loading branch information
vcsjones authored Jan 13, 2025
1 parent 812d504 commit b8d8372
Showing 1 changed file with 3 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -313,7 +313,9 @@ private static void GetHexStringCore(Span<char> destination, bool lowercase)

// Don't overfill the buffer if the destination is smaller than the buffer size. We need to round up when
// when dividing by two to account for an odd-length destination.
int needed = (destination.Length + 1) / 2;
// Adding one to a span of length int.MaxValue may overflow. This is handled by the unsigned shift to the right
// which will correct the overflow.
int needed = (destination.Length + 1) >>> 1;
Span<byte> remainingRandom = randomBuffer.Slice(0, Math.Min(RandomBufferSize, needed));
RandomNumberGenerator.Fill(remainingRandom);

Expand Down

0 comments on commit b8d8372

Please sign in to comment.