This revision was automatically updated to reflect the committed changes.
Closed by commit rL363101: Fix a crash in option parsing. (authored by adrian,
committed by ).
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.
Changed prior to commit:
https://reviews.llvm.org/D63110?vs=203940&id=204164#toc
Repository:
rL LLVM
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D63110/new/
https://reviews.llvm.org/D63110
Files:
lldb/trunk/lit/Driver/Inputs/process_attach_pid.in
lldb/trunk/lit/Driver/TestProcessAttach.test
lldb/trunk/source/Interpreter/Options.cpp
Index: lldb/trunk/source/Interpreter/Options.cpp
===================================================================
--- lldb/trunk/source/Interpreter/Options.cpp
+++ lldb/trunk/source/Interpreter/Options.cpp
@@ -1362,6 +1362,12 @@
int long_options_index = -1;
val = OptionParser::Parse(argv.size(), &*argv.begin(), sstr.GetString(),
long_options, &long_options_index);
+
+ if ((size_t)OptionParser::GetOptionIndex() > argv.size()) {
+ error.SetErrorStringWithFormat("option requires an argument");
+ break;
+ }
+
if (val == -1)
break;
Index: lldb/trunk/lit/Driver/Inputs/process_attach_pid.in
===================================================================
--- lldb/trunk/lit/Driver/Inputs/process_attach_pid.in
+++ lldb/trunk/lit/Driver/Inputs/process_attach_pid.in
@@ -0,0 +1 @@
+process attach --pid
Index: lldb/trunk/lit/Driver/TestProcessAttach.test
===================================================================
--- lldb/trunk/lit/Driver/TestProcessAttach.test
+++ lldb/trunk/lit/Driver/TestProcessAttach.test
@@ -0,0 +1,2 @@
+# RUN: %lldb -x -b -S %S/Inputs/process_attach_pid.in 2>&1 | FileCheck %s
+# CHECK: requires an argument
Index: lldb/trunk/source/Interpreter/Options.cpp
===================================================================
--- lldb/trunk/source/Interpreter/Options.cpp
+++ lldb/trunk/source/Interpreter/Options.cpp
@@ -1362,6 +1362,12 @@
int long_options_index = -1;
val = OptionParser::Parse(argv.size(), &*argv.begin(), sstr.GetString(),
long_options, &long_options_index);
+
+ if ((size_t)OptionParser::GetOptionIndex() > argv.size()) {
+ error.SetErrorStringWithFormat("option requires an argument");
+ break;
+ }
+
if (val == -1)
break;
Index: lldb/trunk/lit/Driver/Inputs/process_attach_pid.in
===================================================================
--- lldb/trunk/lit/Driver/Inputs/process_attach_pid.in
+++ lldb/trunk/lit/Driver/Inputs/process_attach_pid.in
@@ -0,0 +1 @@
+process attach --pid
Index: lldb/trunk/lit/Driver/TestProcessAttach.test
===================================================================
--- lldb/trunk/lit/Driver/TestProcessAttach.test
+++ lldb/trunk/lit/Driver/TestProcessAttach.test
@@ -0,0 +1,2 @@
+# RUN: %lldb -x -b -S %S/Inputs/process_attach_pid.in 2>&1 | FileCheck %s
+# CHECK: requires an argument
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits