summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Language/ObjC
diff options
context:
space:
mode:
authorStephane Sezer <sas@cd80.net>2017-06-05 17:44:04 +0000
committerStephane Sezer <sas@cd80.net>2017-06-05 17:44:04 +0000
commitca5e153fb19286766f988ead99a26b9a2a9beea6 (patch)
tree776e115e1f059e8cf400106434b38177d19b1eb9 /lldb/source/Plugins/Language/ObjC
parentd454c73cc3085b151feb0935527174fba6d0ae91 (diff)
downloadbcm5719-llvm-ca5e153fb19286766f988ead99a26b9a2a9beea6.tar.gz
bcm5719-llvm-ca5e153fb19286766f988ead99a26b9a2a9beea6.zip
Avoid invalid string access in ObjCLanguage::MethodName::SetName
Summary: Don't access `name[1] if the string is only of length 1. Avoids a crash/assertion failure when parsing the string `-`. Test Plan: Debug a swift binary, set a breakpoint, watch lldb not crash Original change by Paul Menage <menage@fb.com> Reviewers: lldb-commits, clayborg Differential Revision: https://reviews.llvm.org/D33853 llvm-svn: 304725
Diffstat (limited to 'lldb/source/Plugins/Language/ObjC')
-rw-r--r--lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp b/lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp
index 193c5864d01..4d9227598ce 100644
--- a/lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp
+++ b/lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp
@@ -95,7 +95,7 @@ bool ObjCLanguage::MethodName::SetName(llvm::StringRef name, bool strict) {
// or '-' can be omitted
bool valid_prefix = false;
- if (name[0] == '+' || name[0] == '-') {
+ if (name.size() > 1 && (name[0] == '+' || name[0] == '-')) {
valid_prefix = name[1] == '[';
if (name[0] == '+')
m_type = eTypeClassMethod;
OpenPOWER on IntegriCloud