<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotemacs/tests/test-dirvish-config-wrappers.el, branch load-graph-classify-end</title>
<subtitle>My Emacs configuration
</subtitle>
<id>https://git.cjennings.net/dotemacs/atom?h=load-graph-classify-end</id>
<link rel='self' href='https://git.cjennings.net/dotemacs/atom?h=load-graph-classify-end'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/'/>
<updated>2026-05-23T08:31:04+00:00</updated>
<entry>
<title>fix(dirvish): guard nil file and reject path-traversal playlist names</title>
<updated>2026-05-23T08:31:04+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-23T08:31:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=8fc6432d44e41787fb7f69ad792f50cc906393d5'/>
<id>urn:sha1:8fc6432d44e41787fb7f69ad792f50cc906393d5</id>
<content type='text'>
cj/set-wallpaper passed `(dired-file-name-at-point)` straight to `expand-file-name`, so running it with no file at point raised a bare `wrong-type-argument` instead of a clear error. cj/dired-create-playlist-from-marked expanded the raw playlist name under `music-dir` without checking it, so a name like "../foo" or "/etc/foo" would write outside the music directory.

I added a nil-file guard to set-wallpaper and a `cj/--playlist-name-safe-p` check that rejects any name carrying a directory separator before the path is built. Both paths now fail cleanly with a user-error. Regression tests went into the existing wrapper and playlist test files.
</content>
</entry>
<entry>
<title>test(dirvish-config): cover ediff-files, create-playlist, set-wallpaper wrappers</title>
<updated>2026-05-14T09:15:32+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-14T09:15:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=e86290c29c2ea1b24011cdbabb8439d154f5d443'/>
<id>urn:sha1:e86290c29c2ea1b24011cdbabb8439d154f5d443</id>
<content type='text'>
</content>
</entry>
</feed>
