Menu ▾ ▴

#297 Invalid filename chars used in a list entry causes audio to not work

1.10
open
audio (3)
Win32-GDI
1.10a
19 hours ago
19 hours ago
No

The per-entry cache directory is the dialing directory entry name, used verbatim as a path component (get_cache_fn_base() in term.c, and the rename/delete/orphan-sweep code in bbslist.c). Names that are not valid file names break the cache, and some escape the cache root.

Reproduce (Windows):

  1. Create an entry named "Test*BBS" for a BBS that sends audio (or RIP icons).
  2. Connect.
  3. No directory is created under
    %LOCALAPPDATA%\Microsoft\Windows\INetCache\SyncTERM\, and audio does not play. No error is shown.

Rename the entry to "TestBBS" and audio works.

Reported by MRO (BBSES.info) testing against telnetvision.

Same cause, other names:

  • Windows: any of : ? * " < > | / \, device names (CON, NUL, AUX, COM1...), and trailing dot or space.
  • All platforms: "/" creates nested directories. The orphan sweep then finds the top-level directory, matches no entry, and deletes its files each time the list is loaded.
  • All platforms: an entry named ".." resolves to the parent of the cache root. Deleting that entry runs delfiles() on the parent directory.

Discussion

Anonymous
Anonymous

Add attachments
Cancel