HomePhabricator

[lldb] Fix that SIGWINCH crashes IOHandlerEditline when we are not using the…
1974241e280fUnpublished

Authored by teemperor on Jun 19 2020, 10:13 AM.

Unpublished Commit · Learn More

Not On Permanent Ref: This commit is not an ancestor of any permanent ref.

Description

[lldb] Fix that SIGWINCH crashes IOHandlerEditline when we are not using the editline backend

Summary:
TerminalSizeChanged is called from our SIGWINCH signal handler but the
IOHandlerEditline currently doesn't check if we are actually using the real
editline backend. If we're not using the real editline backend, m_editline_up
won't be set and IOHandlerEditline::TerminalSizeChanged will access
the empty unique_ptr. In a real use case we don't use the editline backend
when we for example read input from a file. We also create some temporary
IOHandlerEditline's during LLDB startup it seems that are also treated
as non-interactive (apparently to read startup commands).

This patch just adds a nullptr check for`m_editline_up` as we do in the rest of
IOHandlerEditline.

Fixes rdar://problem/63921950

Reviewers: labath, friss

Reviewed By: friss

Subscribers: abidh, JDevlieghere

Differential Revision: https://reviews.llvm.org/D81729

(cherry picked from commit be18df3d23fe21fa622ec45fa09eddb3af3eef6b)