[all-commits] [llvm/llvm-project] be18df: [lldb] Fix that SIGWINCH crashes IOHandlerEditline...

Raphael Isemann via All-commits all-commits at lists.llvm.org
Fri Jun 19 10:14:45 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: be18df3d23fe21fa622ec45fa09eddb3af3eef6b
      https://github.com/llvm/llvm-project/commit/be18df3d23fe21fa622ec45fa09eddb3af3eef6b
  Author: Raphael Isemann <teemperor at gmail.com>
  Date:   2020-06-19 (Fri, 19 Jun 2020)

  Changed paths:
    M lldb/source/Core/IOHandler.cpp
    A lldb/test/API/iohandler/resize/TestIOHandlerResizeNoEditline.py

  Log Message:
  -----------
  [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




More information about the All-commits mailing list