diff options
author | Kevin Frei <kevinfrei@users.noreply.github.com> | 2023-12-14 11:10:51 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-14 11:10:51 -0800 |
commit | 0544c781728a665806b069cb8202acd4f6981a0a (patch) | |
tree | efff8e3d7650c560418a19b66c05dd1b7b63c2ba /llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp | |
parent | fed564432cef76f8b303c19ab1dfc0a14878fbc3 (diff) | |
download | llvm-0544c781728a665806b069cb8202acd4f6981a0a.zip llvm-0544c781728a665806b069cb8202acd4f6981a0a.tar.gz llvm-0544c781728a665806b069cb8202acd4f6981a0a.tar.bz2 |
Fix a crash from character type confusion interaction with libedit (#75388)
If you type `settings show <tab>` LLDB might crash, depending on the
version of libedit you're compiled with, and whether you're compiled
with `-DLLDB_EDITLINE_USE_WCHAR=0` (and depending on how the optimizer
lays out the stack...)
The issue has to do with trying to figure out whether the libedit
`getchar` callback is supposed to read a wide or 8 bit character. In
order to maintain backward compatibility, there's really no 'clean' way
to do it. We just have to make sure that we're invoking el_[w]getc with
a buffer that is as wide as the getchar callback (registered by the
`SetGetCharacterFunction` function further down in `Editline.cpp`.
So, it's 'fixed' with a comment, and a wider version of the 'reply'
variable.
Co-authored-by: Kevin Frei <freik@meta.com>
Diffstat (limited to 'llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp')
0 files changed, 0 insertions, 0 deletions