diff options
| author | Danilo M. <danix@danix.xyz> | 2026-08-02 17:41:39 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-08-02 17:41:39 +0200 |
| commit | 8ecd5a8e83380f543b856ff28226a8e15fd7dc96 (patch) | |
| tree | 1201e7311e36ba80db2aafe0d182d9b260f3ad61 /src/keymap.cpp | |
| parent | 485e06b796603ef760576748fbd96bc177d5fa49 (diff) | |
| download | qtmaildir-8ecd5a8e83380f543b856ff28226a8e15fd7dc96.tar.gz qtmaildir-8ecd5a8e83380f543b856ff28226a8e15fd7dc96.zip | |
docs: scope the document-load exemption to an exact URL
The interceptor previously trusted the whole qtmaildir: scheme, so a
hostile message body referencing qtmaildir://anything would have been
allowed. That made the interceptor's correctness depend on the scheme
handler in a different, later task.
It now trusts only the exact base URL passed to setHtml() and fails
closed when none is set. Records the resulting obligation on MessageView
to call setDocumentUrl() with that same URL.
Also corrects the attachment path guard to a separator-aware comparison
and notes that it is unreachable defence-in-depth: safeFilename() runs
first, so no caller-supplied name can reach it. A test driving saveTo()
expecting refusal cannot pass; test safeFilename() instead.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Diffstat (limited to 'src/keymap.cpp')
0 files changed, 0 insertions, 0 deletions
