groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Behaviour of .so differs between mandoc and groff


From: Alexis
Subject: Re: Behaviour of .so differs between mandoc and groff
Date: Sun, 30 Apr 2023 09:24:42 +1000
User-agent: mu4e 1.8.14; emacs 28.3


Ping. Does anyone have any thoughts on this? It's a small but persistent irritation on my system. :-)

Alexis <flexibeast@gmail.com> writes:

[1. text/plain]

Hi all,

On my Gentoo system, awk.1 simply contains an .so request whose
argument is the man page for the actual awk implementation in use,
i.e. just:

   .so gawk.1

However, although this works when using man-db, it doesn't when one is
using mandoc instead, as on my system. Instead of gawk.1 being
sourced, processed and displayed, i get output along the lines of:

   ()                                    ()
           See the file gawk.1.


   ()

However, if i change the request in awk.1 to:

   .so man1/gawk.1

then everything works as expected.

The example in the entry for .so in mandoc_roff(7) is what led me to
try the preceding, but there's no further indication that the
requirement for a leading section directory is consciously different from any other roff implementation, or from groff in particular. A
comment in roff_so() in mandoc/roff.c[a] says:

   /*
   /* Handle `so'.  Be EXTREMELY careful, as we shouldn't be
    * opening anything that's not in our cwd or anything beneath
    * it.  Thus, explicitly disallow traversing up the
      file-system
    * or using absolute paths.
    */

i couldn't find any discussion about .so in the mandoc TODO list[b].

i've no idea what the 'correct' behaviour 'should' be, from whatever perspective (historical / security / groff-compatibility / etc.), so
am cross-posting to what i believe to be the relevant lists.


Alexis.

[a]
https://cvsweb.bsd.lv/mandoc/roff.c?rev=1.395&content-type=text/x-cvsweb-markup

[b]
https://cvsweb.bsd.lv/mandoc/TODO?rev=1.327&content-type=text/x-cvsweb-markup




reply via email to

[Prev in Thread] Current Thread [Next in Thread]