Page MenuHomeFreeBSD

man(1) does not support some special characters in filenames (double quotes and sub shell character)
ClosedPublic

Authored by wosch on Jan 14 2024, 1:49 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Oct 5, 8:02 AM
Unknown Object (File)
Thu, Sep 25, 10:42 AM
Unknown Object (File)
Sat, Sep 20, 2:16 AM
Unknown Object (File)
Wed, Sep 17, 8:12 PM
Unknown Object (File)
Wed, Sep 17, 10:30 AM
Unknown Object (File)
Sun, Sep 14, 5:32 AM
Unknown Object (File)
Sep 10 2025, 1:35 AM
Unknown Object (File)
Sep 7 2025, 6:17 PM
Subscribers

Details

Summary

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=275967

Unfortunately, there is another problem with double quotes and sub shell character as '`' '$'

$ cp /usr/share/man/man1/cat.1.gz 'c`t.1.gz'
$ /usr/bin/man './c`t.1.gz'
eval: 1: Syntax error: EOF in backquote substitution
eval: 1: Syntax error: Error in command substitution

I think the problem is the usage of eval "string....". I don't know why we are using eval here and if we really need it.

Using eval for untrusted user input does not make a shell script more secure. It is an easy way to shoot yourself in the foot.

Test Plan

Diff Detail

Lint
Lint Skipped
Unit
Tests Skipped