mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-22 23:24:59 +00:00
raw_ostream::operator<<(StringRef): Avoid potential overflow in pointer arithmetic.
(OutBufCur + Size) might overflow if Size were large. For example on i686-linux, OutBufCur: 0xFFFDF27D OutBufEnd: 0xFFFDF370 Size: 0x0002BF20 (180,000) It caused flaky error in MC/COFF/section-name-encoding.s. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@207621 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -162,7 +162,7 @@ public:
|
|||||||
size_t Size = Str.size();
|
size_t Size = Str.size();
|
||||||
|
|
||||||
// Make sure we can use the fast path.
|
// Make sure we can use the fast path.
|
||||||
if (OutBufCur+Size > OutBufEnd)
|
if (Size > (size_t)(OutBufEnd - OutBufCur))
|
||||||
return write(Str.data(), Size);
|
return write(Str.data(), Size);
|
||||||
|
|
||||||
memcpy(OutBufCur, Str.data(), Size);
|
memcpy(OutBufCur, Str.data(), Size);
|
||||||
|
Reference in New Issue
Block a user