The strings were concatenated, making it impossible to match the path.
- Dominant language
- CodeQL
- Stars
- 10.1k
- Forks
- 2.1k
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 141
Description
Source can query the fileName.

Sink can also query data.

Logic can be connected.

But no results were found.

The test from fileName to FileUtils.isValidFilename can retrieve results.

However, when querying from fileName to writeBytes, no results are returned. The data passes through the line "String filePath = Global.getDownloadPath() + fileName;" in the middle.


Contributor guide
Research direction
Start by tracing the reported flow from fileName through "String filePath = Global.getDownloadPath() + fileName;" to writeBytes, and compare it with the path to FileUtils.isValidFilename. Inspect how the CodeQL data-flow query handles the concatenation, then verify that the fileName-to-writeBytes query returns a result while the existing path remains covered.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- security
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100