Open
Description
Describe the issue:
We are encountering an issue with Slither’s source mapping when analyzing Solidity files that include certain special Unicode characters. In our use case, the source mapping index returned for some functions exceeds the length of the source file. For example, we observed that for a file with a total length of 54,863 characters, Slither reported an internal function with a start index of 55,053.
After investigation, we suspect that the presence of characters such as:
+.*•´.*:˚.°*.˚
≈
½
may be causing encoding or processing issues within Slither (or its underlying CryticCompile component), leading to miscalculation of character positions.
Steps to Reproduce:
- Create a Solidity file (e.g.,
Test.sol
) that includes a library or contract containing these special characters in comments or string literals. - Run Slither (via CryticCompile) on the file.
- Observe that the source mapping for at least one function returns a start index greater than the total file length.
Code example to reproduce the issue:
(https://github.com/Vectorized/solady/blob/main/src/utils/FixedPointMathLib.sol)
Version:
0.11.0