Created attachment 217947 [details]
Remove -l flag in CGI script
'w3mman -l file' relies on the -l flag of some man implementations, which ignores system manual sections and assumes any arguments are paths to files. It first constructs a URL that gets passed to the w3mman2html.cgi script, which then checks for a query parameter named 'local' and ultimately opens that file in w3m after converting the output of '$MAN -l $file', where $MAN is /usr/bin/man if the W3MMAN_MAN environment variable is unset or an empty string.
Unfortunately, FreeBSD's man(1) does not have a -l flag, instead checking arguments against the shell pattern */* to determine whether they're paths or not. Consequently, the resulting invocation '/usr/bin/man -l /path/to/file' will fail with an error that -l is an invalid flag for man(1).
A patch is attached that removes the -l flag in the w3mman2html.cgi script to fix this issue, resulting in '/usr/bin/man /path/to/file' being executed instead.
A commit references this bug:
Date: Tue Sep 22 05:48:21 UTC 2020
New revision: 549559
Remove "-l" option of man command that FreeBSD's one does not have.
Submitted by: Dustin Boyd <email@example.com>