diff options
author | Stephane Sezer <sas@cd80.net> | 2017-06-05 17:44:04 +0000 |
---|---|---|
committer | Stephane Sezer <sas@cd80.net> | 2017-06-05 17:44:04 +0000 |
commit | ca5e153fb19286766f988ead99a26b9a2a9beea6 (patch) | |
tree | 776e115e1f059e8cf400106434b38177d19b1eb9 /lldb/source/Plugins/Language/ObjC | |
parent | d454c73cc3085b151feb0935527174fba6d0ae91 (diff) | |
download | bcm5719-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.cpp | 2 |
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; |