NationalSecurityAgency / ghidra

Ghidra is a software reverse engineering (SRE) framework
https://www.nsa.gov/ghidra
Apache License 2.0
51.37k stars 5.85k forks source link

XML escape characters in error windows #1322

Open mumbel opened 4 years ago

mumbel commented 4 years ago

Working in 9.1_PUBLIC

Working on a processor, got this error and noticed the window message doesn't match the stack trace message. < is removed.

(also any SLEIGH hints on fixing this type of error are welcome)

Analysis Task: Stack - Bit length must be >= 1 and = 64
Analysis Task: Stack - Bit length must be >= 1 and <= 64
java.lang.IllegalArgumentException: Bit length must be >= 1 and <= 64
    at ghidra.program.model.scalar.Scalar.<init>(Scalar.java:62)
    at ghidra.program.util.VarnodeContext.extendValue(VarnodeContext.java:1254)
    at ghidra.program.util.SymbolicPropogator.applyPcode(SymbolicPropogator.java:1090)
    at ghidra.program.util.SymbolicPropogator.flowConstants(SymbolicPropogator.java:491)
    at ghidra.program.util.SymbolicPropogator.flowConstants(SymbolicPropogator.java:389)
    at ghidra.program.util.SymbolicPropogator.flowConstants(SymbolicPropogator.java:188)
    at ghidra.app.cmd.function.NewFunctionStackAnalysisCmd.createStackPointerVariables(NewFunctionStackAnalysisCmd.java:340)
    at ghidra.app.cmd.function.NewFunctionStackAnalysisCmd.analyzeFunction(NewFunctionStackAnalysisCmd.java:191)
    at ghidra.app.cmd.function.NewFunctionStackAnalysisCmd.applyTo(NewFunctionStackAnalysisCmd.java:118)
    at ghidra.app.plugin.core.function.StackVariableAnalyzer.added(StackVariableAnalyzer.java:54)
    at ghidra.app.plugin.core.analysis.AnalysisScheduler.runAnalyzer(AnalysisScheduler.java:185)
    at ghidra.app.plugin.core.analysis.AnalysisTask.applyTo(AnalysisTask.java:39)
    at ghidra.app.plugin.core.analysis.AutoAnalysisManager$AnalysisTaskWrapper.run(AutoAnalysisManager.java:685)
    at ghidra.app.plugin.core.analysis.AutoAnalysisManager.startAnalysis(AutoAnalysisManager.java:785)
    at ghidra.app.plugin.core.analysis.AutoAnalysisManager.startAnalysis(AutoAnalysisManager.java:664)
    at ghidra.app.plugin.core.analysis.AutoAnalysisManager.startAnalysis(AutoAnalysisManager.java:629)
    at ghidra.app.plugin.core.analysis.AnalysisBackgroundCommand.applyTo(AnalysisBackgroundCommand.java:62)
    at ghidra.framework.plugintool.mgr.BackgroundCommandTask.run(BackgroundCommandTask.java:101)
    at ghidra.framework.plugintool.mgr.ToolTaskManager.run(ToolTaskManager.java:315)
    at java.base/java.lang.Thread.run(Thread.java:830)
ryanmkurtz commented 4 years ago

I'm able to reproduce it, thanks!

mumbel commented 4 years ago

This might be the same issue. Noticed it while searching for references to an enum. The context is missing < as well. something like if (temp < MYENUM_5) shows as if (temp MYENUM_5)