Describe the bug
The entries in an ExtensionPoint.manifest file are not validated before being added to the buffer that is passed to Pattern.compile. Entries containing problematic regex characters such as \, (, [, etc. will cause unexpected behavior while searching for extension points or may cause Ghidra to throw an exception on startup.
To Reproduce
Steps to reproduce the behavior:
Open an existing extensions ExtensionPoint.manifest file and add Invalid.Cl\a(s[s.
Attempt to start Ghidra and see "AssertException - Unable to locate extension points!"
Expected behavior
Entries containing invalid characters should be logged and skipped.
Environment (please complete the following information):
Describe the bug The entries in an
ExtensionPoint.manifest
file are not validated before being added to the buffer that is passed toPattern.compile
. Entries containing problematic regex characters such as\
,(
,[
, etc. will cause unexpected behavior while searching for extension points or may cause Ghidra to throw an exception on startup.To Reproduce Steps to reproduce the behavior:
ExtensionPoint.manifest
file and addInvalid.Cl\a(s[s
.Expected behavior Entries containing invalid characters should be logged and skipped.
Environment (please complete the following information):
Additional context I like breaking things