| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
If is allowed by markdown syntax and more human-readable.
|
|
|
|
| |
of a user-defined macro; issue found by tb@ with afl(1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
limit, usually due to infinite recursion, discard whatever remains
in all those open stack levels. Otherwise, insane constructions
like the following could generate macros of enormous size, causing
mandoc(1) to die from memory exhaustion:
.de m \" original macro definition
.m \" recursion to blow up the stack
.de m \" definition to be run during the call of .m marked (*)
very long plain text (some kilobytes)
.m \" expand the above a thousand times while unwinding the stack
.. \" end of the original definition
.m \" (*) recursively generate a ridiculously large macro
.. \" end of recursively generated definition
.m \" execute the giant macro, exhausting memory
Very creative abuse found by tb@ with afl(1).
|
|
|
|
| |
such that they don't look like output line breaks.
|
| |
|
| |
|
| |
|
|
|
|
| |
No ‌ in the middle of **, please.
|
|
|
|
|
| |
Warn if that macro occurs elsewhere.
Triggered by a question from Dag-Erling Smoergrav <des @ FreeBSD>.
|
| |
|
| |
|
|
|
|
|
|
| |
This is needed because -T marksdown is expected to receive less
maintenance than -T ascii, so we need automation to make sure
that regular parser maintenance doesn't break this output mode.
|
|
|
|
| |
Found by jsg@ with scan-build.
|
|
|
|
| |
Basic idea suggested by jmc@, OK jmc@.
|
|
|
|
|
|
| |
but also for program files.
Issue reported by Michael <Stapelberg at debian dot org>
and by Markus <Waldeck at gmx dot de>.
|
|
|
|
|
|
|
|
|
|
| |
this bug could cause wrong output in other modes as well):
Do not misinterpret tab characters as .Ta macros when they appear
on non-column .It lines in non-column .Bl lists that are nested
inside a parent .Bl -column list. (Admittedly, such constructions
are not very useful; don't use them!)
Found by tb@ with afl(1) because the resulting tree corruption
triggered an assertion in the markdown output module.
|
|
|
|
| |
thanks to reyk@ and to Vsevolod at FreeBSD for suggesting it
|
| |
|
|
|
|
|
| |
a section number in .TH to be misinterpreted as preformatted.
Found by jsg@ with cppcheck.
|
|
|
|
|
| |
searches to be case-insensitive that ought to be case sensitive.
Found by jsg@ with scan-build.
|
|
|
|
| |
is empty; found by jsg@ with afl(1).
|
|
|
|
|
| |
Based on a more complicated patch from semarie@.
Sebastien and tb@ both agree with the simplification.
|
|
|
|
| |
Patch from semarie@, OK tb@.
|
|
|
|
|
| |
NULL dereference in man.cgi reported by Gabriel Guzman <gabe at
guzman dash nunez dot com> on misc@.
|
|
|
|
| |
suggested by Michael Stapelberg
|
|
|
|
| |
found by Michael <Stapelberg at debian dot org> with Lintian
|
| |
|
|
|
|
|
| |
* we include <sys/types.h> for size_t, so we don't need <stdint.h>
* sort declarations in read_whole_file()
|
| |
|
|
|
|
| |
diff from <christos at NetBSD>
|
|
|
|
| |
with the wrong DESTDIR. Use with care.
|
| |
|
| |
|
|
|
|
|
| |
output, of course). Patch from bentley@ in November 2014. This can be
committed now because groff merged Anthony's patch yesterday.
|
|
|
|
|
|
|
|
|
|
|
| |
ugly in -Tascii output. For that reason, bentley@ submitted patches
to render "..." instead to groff in November 2014 (yes, more than
two years ago). Carsten Kunze yesterday merged them for the upcoming
groff-1.22.4 release. Yay!
Consequently, do the same in mandoc: Render \(Lq and \(Rq (which
are used for .Do, .Dq, .Lb, and .St) as '"' in -Tascii output.
All other output modes including -Tutf8 remain unchanged.
|
| |
|
|
|
|
| |
from Christos Zoulas <christos at NetBSD>.
|
|
|
|
| |
from Christos Zoulas <christos at NetBSD>.
|
|
|
|
|
| |
This is simple and seems to help the NetBSD build infrastructure.
From Christos Zoulas <christos at NetBSD>.
|
|
|
|
| |
from Christos Zoulas <christos @ NetBSD>.
|
|
|
|
|
|
|
|
|
|
|
| |
text nodes when a string passed to deroff() ended in a backslash
and the byte after the terminating NUL was non-NUL, found by tb@
with afl(1).
Invalid bytes so copied with the high bit set could later sometimes
trigger another out of bounds read access to static memory in
roff_strdup(), so add an assertion there to abort safely in case
of similar data corruption.
|
| |
|
| |
|
|
|
|
| |
Suggested by Michael <Stapelberg@debian.org>.
|
|
|
|
|
|
| |
column width specifiers, so stop supporting them, too.
As a side effect, this fixes an assertion failure that tb@ found
with afl(1), triggered by: .Bl -column -4n
|
|
|
|
|
| |
mode and in other output modes, so do not error out prematurely.
Also sort local variables in main() while here.
|
|
|
|
|
|
|
|
|
| |
implicit blocks (.Aq Bq Po .Pc) that left the outer breaker open
and could in exceptional cases, like between .Bl and .It, cause
tree corruption leading to NULL dereference.
Found by tb@ with afl(1).
While here, do not mark intermediate ENDBODY markers as broken.
|
|
|
|
|
|
|
|
| |
Comparing to groff output, it appears that all cases where it was used
and made a difference actually require the opposite, ENDBODY_SPACE.
I have no idea why i added it back in 2010; maybe to compensate for
some other bug that has long been fixed.
|
|
|
|
|
|
|
|
|
|
| |
As reported by Yuri Pankov, some versions of GCC whine that "tmp"
might be used uninitialized in fts_open(3). Clearly, that cannot
actually happen, but explicitly setting it to NULL is safer anyway.
While here, rename the badly named variable "tmp" and make the
inner "if" easier to understand.
Feedback and OK guenther@
|
|
|
|
|
| |
a node is marked as "not a macro" when unifying the parsers.
Confirmed to work by Sevan Janiyan.
|