diff options
author | Nico Weber <nicolasweber@gmx.de> | 2019-04-21 16:58:25 +0000 |
---|---|---|
committer | Nico Weber <nicolasweber@gmx.de> | 2019-04-21 16:58:25 +0000 |
commit | 8fc9902bbb0d48c75fe33627641f14c9c3e09e25 (patch) | |
tree | a24bb046dba5692a497126818da41f5b2c0663a8 /llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp | |
parent | 198ab6013678e35d6b6cbd9cefad84691ff358b2 (diff) | |
download | llvm-8fc9902bbb0d48c75fe33627641f14c9c3e09e25.zip llvm-8fc9902bbb0d48c75fe33627641f14c9c3e09e25.tar.gz llvm-8fc9902bbb0d48c75fe33627641f14c9c3e09e25.tar.bz2 |
llvm-undname: Fix stack overflow on almost-valid
If a unsigned with all 4 bytes non-0 was passed to outputHex(), there
were two off-by-ones in it:
- Both MaxPos and Pos left space for the final \0, which left the buffer
one byte to small. Set MaxPos to 16 instead of 15 to fix.
- The `assert(Pos >= 0);` was after a `Pos--`, move it up one line.
Since valid Unicode codepoints are <= 0x10ffff, this could never really
happen in practice.
Found by oss-fuzz.
llvm-svn: 358856
Diffstat (limited to 'llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp')
0 files changed, 0 insertions, 0 deletions