[Lldb-commits] [PATCH] D68677: protect libedit and LLDB gui from receiving null FILE* streams
Lawrence D'Anna via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Tue Oct 8 18:10:09 PDT 2019
lawrence_danna created this revision.
lawrence_danna added reviewers: JDevlieghere, jasonmolenda, labath.
Herald added a project: LLDB.
lawrence_danna added a parent revision: D68188: allow arbitrary python streams to be converted to SBFile.
We now have valid files that will return NULL from GetStream().
libedit and the LLDB gui are the only places left that need FILE*
streams. Both are doing curses-like user interaction that only
make sense with a real terminal anyway, so there is no need to convert
them off of their use of FILE*. But we should check for null streams
before enabling these features.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D68677
Files:
lldb/source/Commands/CommandObjectGUI.cpp
lldb/source/Core/IOHandler.cpp
Index: lldb/source/Core/IOHandler.cpp
===================================================================
--- lldb/source/Core/IOHandler.cpp
+++ lldb/source/Core/IOHandler.cpp
@@ -266,7 +266,8 @@
#ifndef LLDB_DISABLE_LIBEDIT
bool use_editline = false;
- use_editline = m_input_sp && m_input_sp->GetIsRealTerminal();
+ use_editline = GetInputFILE() && GetOutputFILE() && GetErrorFILE() &&
+ m_input_sp && m_input_sp->GetIsRealTerminal();
if (use_editline) {
m_editline_up.reset(new Editline(editline_name, GetInputFILE(),
Index: lldb/source/Commands/CommandObjectGUI.cpp
===================================================================
--- lldb/source/Commands/CommandObjectGUI.cpp
+++ lldb/source/Commands/CommandObjectGUI.cpp
@@ -29,7 +29,9 @@
Debugger &debugger = GetDebugger();
File &input = debugger.GetInputFile();
- if (input.GetIsRealTerminal() && input.GetIsInteractive()) {
+ File &output = debugger.GetOutputFile();
+ if (input.GetStream() && output.GetStream() && input.GetIsRealTerminal() &&
+ input.GetIsInteractive()) {
IOHandlerSP io_handler_sp(new IOHandlerCursesGUI(debugger));
if (io_handler_sp)
debugger.PushIOHandler(io_handler_sp);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D68677.223967.patch
Type: text/x-patch
Size: 1241 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20191009/3f21db4e/attachment-0001.bin>
More information about the lldb-commits
mailing list