Skip to content

File paths with # are treated as a URI delimiter #711

Description

@JamieSharpe

If the output file path contains a # character, the get_sqlite_db_path function treats it as a URI delimiter, causing any attempts to open a file fail:

Error log

[2/2] userDict [userDict] artifact started
Error with %5C%5C%3F%5CE:\1 - Programming\# Third Party\ALEAPP\ALEAPP_Reports_2026-06-01_Monday_211557\data\Dump\data\data\com.android.providers.userdictionary\databases\user_dict.db:
 - unable to open database file
Reading userDict artifact had errors!
Error was 'NoneType' object has no attribute 'cursor'
Exception Traceback: Traceback (most recent call last):
  File "aleapp.py", line 397, in crunch_artifacts
    plugin.method(files_found, category_folder, seeker, wrap_text)
    ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\1 - Programming\# Third Party\ALEAPP\scripts\artifacts\userDict.py", line 11, in get_userDict
    cursor = db.cursor()
             ^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'cursor'


Processes completed.
Processing time = 00:00:00
Processing time (wall)= 00:00:00

Notice the error on Error with %5C%5C%3F%5CE:\1 - Programming\# Third Party\ALEAPP\ALEAPP_Reports_2026-06-

Remediation

Don't use file paths with a #. The reason I do is so they are sorted to the top.

Permanent fix

I've added a fix by using urllib.parse.quote function to safely escape the path characters.

Merge request to follow.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions