From 877d53b1f1db96eab611192f0f83cfd3817340f7 Mon Sep 17 00:00:00 2001 From: Ingo Schwarze Date: Wed, 7 Feb 2018 20:31:39 +0000 Subject: In man(7) and cat pages, cut off excessive one line descriptions. An extreme example of how rogue files could mess up apropos(1) output was reported by bentley@: qwtlicense(3) in the x11/qwt port. --- mandocdb.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'mandocdb.c') diff --git a/mandocdb.c b/mandocdb.c index e44d5fd7..bbb7b0f9 100644 --- a/mandocdb.c +++ b/mandocdb.c @@ -1373,7 +1373,12 @@ parse_cat(struct mpage *mpage, int fd) plen -= 2; } - mpage->desc = mandoc_strdup(p); + /* + * Cut off excessive one-line descriptions. + * Bad pages are not worth better heuristics. + */ + + mpage->desc = mandoc_strndup(p, 150); fclose(stream); free(title); } @@ -1517,7 +1522,12 @@ parse_man(struct mpage *mpage, const struct roff_meta *meta, while (' ' == *start) start++; - mpage->desc = mandoc_strdup(start); + /* + * Cut off excessive one-line descriptions. + * Bad pages are not worth better heuristics. + */ + + mpage->desc = mandoc_strndup(start, 150); free(title); return; } -- cgit