diff --git a/CHANGELOG.md b/CHANGELOG.md index 9916138e7..065688226 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## Unreleased + +**Fixes** + +- demangle: Fixed a crash/abort when providing bad input to the swift demangler. ([#917](https://github.com/getsentry/symbolic/pull/917)) + ## 12.15.4 **Fixes** diff --git a/symbolic-demangle/vendor/swift/1-arguments.patch b/symbolic-demangle/vendor/swift/1-arguments.patch index 2d5340b27..5209fc4c2 100644 --- a/symbolic-demangle/vendor/swift/1-arguments.patch +++ b/symbolic-demangle/vendor/swift/1-arguments.patch @@ -43,3 +43,14 @@ index 6c309bbf..5b251e8d 100644 return; if (isAsync) +diff --git a/symbolic-demangle/vendor/swift/lib/Demangling/Demangler.cpp b/symbolic-demangle/vendor/swift/lib/Demangling/Demangler.cpp +index 6c309bbf..5b251e8d 100644 +--- a/symbolic-demangle/vendor/swift/lib/Demangling/Demangler.cpp ++++ b/symbolic-demangle/vendor/swift/lib/Demangling/Demangler.cpp +@@ -3423,7 +3423,6 @@ NodePointer Demangler::demangleSpecAttributes(Node::Kind SpecKind) { + + int PassID = (int)nextChar() - '0'; + if (PassID < 0 || PassID >= MAX_SPECIALIZATION_PASS) { +- assert(false && "unexpected pass id"); + return nullptr; + } diff --git a/symbolic-demangle/vendor/swift/lib/Demangling/Demangler.cpp b/symbolic-demangle/vendor/swift/lib/Demangling/Demangler.cpp index 704fbcadb..0d460c5e5 100644 --- a/symbolic-demangle/vendor/swift/lib/Demangling/Demangler.cpp +++ b/symbolic-demangle/vendor/swift/lib/Demangling/Demangler.cpp @@ -3423,7 +3423,6 @@ NodePointer Demangler::demangleSpecAttributes(Node::Kind SpecKind) { int PassID = (int)nextChar() - '0'; if (PassID < 0 || PassID >= MAX_SPECIALIZATION_PASS) { - assert(false && "unexpected pass id"); return nullptr; }