Commit graph

90 commits

Author SHA1 Message Date
Ruslan Ermilov
322628519e Reincarnate SETUID code in man(1), not compiled in by default.
The code will be fixed for all known security vulnerabilities,
and a make.conf(5) knob (ENABLE_SUID_MAN) will be provided for
those who still want it installed setuid for whatever reasons.
2002-01-22 15:15:38 +00:00
Ruslan Ermilov
318e66375a GC spurious -m in the usage(). 2002-01-18 16:08:29 +00:00
Ruslan Ermilov
30843b9337 Do not install man(1) setuid ``man''.
The catpaging and setuidness features of man(1) combined make
it vulnerable to a number of security attacks.  Specifically,
it was possible to overwrite system catpages with arbitrarily
contents by either setting up a symlink to a directory holding
system catpages, or by writing custom -mdoc or -man groff(1)
macro packages and setting up GROFF_TMAC_PATH in environment
to point to them.  (See PR below for details).

This means man(1) can no longer create system catpages on a
regular user's behalf.  (It is still able to if the user has
write permissions to the directory holding catpages, e.g.,
user's own manpages, or if the running user is ``root''.)

To create and install catpages during ``make world'', please
set MANBUILDCAT=YES in /etc/make.conf.  To rebuild catpages
on a weekly basis, please set weekly_catman_enable="YES" in
/etc/periodic.conf.

PR:		bin/32791
2002-01-15 14:11:05 +00:00
Ruslan Ermilov
b9de8f2010 Now that we have the original BSD man(1)'s ${MACHINE} feature
back (as of man.c,v 1.45), change the meaning of the -m option
from poorly documented and badly coded "alternate system" to a
much more useful "different architecture for the same system".

PR:		docs/31261
2002-01-11 15:12:00 +00:00
Ruslan Ermilov
9de6241784 Fixed some of style bugs. 2001-09-12 10:04:42 +00:00
Ruslan Ermilov
6efca31685 SECURITY.
Avoid using setre[ug]id() calls.
Removed the setgid stuff we don't need.
2001-09-06 11:54:28 +00:00
Andrey A. Chernov
b15d61cf16 Rewrite locale handling using nl_langinfo(CODESET), so aliases not needed here
now
2001-06-25 21:11:43 +00:00
Andrey A. Chernov
baf58b5622 In debug mode don't print error for C,POSIX,ASCII,US-ASCII locales 2001-06-10 23:42:31 +00:00
Andrey A. Chernov
80cf6ab26e Fix for new locale names 2001-06-10 15:57:40 +00:00
Ruslan Ermilov
1837dd5db5 mdoc.samples(7) is superseded by mdoc(7). 2001-04-17 12:49:42 +00:00
Ruslan Ermilov
e5ac5644e2 MAN[1-9] -> MAN. 2001-03-27 14:59:06 +00:00
Ruslan Ermilov
afcf05e46a setlocale(3) has been fixed to match POSIX standard:
LC_ALL takes precedence over other LC_* envariables.
2001-03-02 16:52:14 +00:00
Ruslan Ermilov
64a25b5eea Implement one nice feature of original BSD man(1):
: As some manual pages are intended only for specific architectures,
: man searches any subdirectories, with the same name as the current
: architecture, in every directory which it searches.  Machine specific
: areas are checked before general areas.  The current machine type may
: be overridden by setting the environment variable MACHINE to the name
: of a specific architecture.
2001-02-19 14:19:57 +00:00
Ruslan Ermilov
847b07b8bf Fixed the order of environment variables list. 2001-02-19 14:02:48 +00:00
Ruslan Ermilov
5d56fa0cc6 Do not ever try to look into nonexisting locale subdirectories.
(is_directory() returns -1 if the file does not exist, 1 if it
is a directory or a symlink to a directory, and 0 otherwise.)
2001-02-15 19:01:41 +00:00
Ruslan Ermilov
ad4ba1ec87 If both full-locale-name and short-locale-name searches
fail, look the manpage in the en.<charset> subdirectory.

See the manpage for details.

Suggested by:	ache
2001-02-14 16:31:08 +00:00
Ruslan Ermilov
79f17ca354 Backout 1.38->1.41 (functional) changes pending the proper solution.
/usr/share/man/cat? is only allowed to store -Tascii formatted data.

Requested by:	ache
2001-02-14 13:16:16 +00:00
Ruslan Ermilov
88c033be20 Make it possible for any given locale to use different
groff(1) devices for localized and non-localized pages.

Currently, for *.ISO_8859-1 locales the device in both
cases is "latin1", and for KOI8-R locale it is "koi8-r"
for localized and "ascii" for non-localized pages.

Discussed with:	des
2001-02-13 16:15:04 +00:00
Dag-Erling Smørgrav
7105f09c38 Revert part of previous commit and initialize locale_nroff to " -Tascii"
so man(1) works properly when no locale is set.

Spotted by:	bde
2001-01-28 20:17:14 +00:00
Dag-Erling Smørgrav
0448bdfcb8 Make an effort to actually pass the correct device to groff. 2001-01-27 19:17:40 +00:00
Ruslan Ermilov
36fd98fad4 Teach man(1) how to look inside compressed manuals
for preprocessor directives.  Avoid use of cat(1).

PR:		bin/23585
2000-12-22 19:05:13 +00:00
Ruslan Ermilov
a2fd3702a3 mdoc(7) police: use canonical form of .Dd macro. 2000-12-11 15:15:20 +00:00
Sheldon Hearn
44b20bdb13 The MANSECT environment variable was misrepresented as MANSEC. Fixed.
PR:		17745
Submitted by:	nordwick@askjeeves.com (Jason "Just Change It" Nordwick)
2000-04-05 13:57:46 +00:00
Mike Pritchard
776dba5ae2 Fix a minor grammar problem. 2000-03-24 01:02:33 +00:00
Alexey Zelkin
c7986155e0 Better handling groff failures. If popen(ROFF_COMMAND) returns zero bytes
then handle it as problem. This commit fixes problem with archiving empty files.

PR:		gnu/5767
Submitted by:	Bill Fenner <fenner@parc.xerox.com>
1999-12-28 12:55:58 +00:00
Jeroen Ruigrok van der Werven
cf783253bd Update man(1) to explain how to use the section numbers.
PR:		docs/15557
Submitted by:	John Meshkoff <johnpipe@nwserv.com>
Reviewed by:	sheldonh
1999-12-20 14:34:29 +00:00
John Baldwin
8081b10e66 Fix man so that it does not allow command line arguments to expand when
executing apropos or whatis.  This prevents `man -k ';echo foo'` from
executing `echo foo` and causes apropos to print an error message instead.

Add $FreeBSD$ while I am here.

Noticed by:	chris
1999-11-13 00:11:50 +00:00
Andrey A. Chernov
b78133c1d9 Describe localized directories naming convention
Submitted by:	mostly by phantom
1999-10-30 22:15:19 +00:00
Peter Wemm
9b7a44a60e $Id$ -> $FreeBSD$ 1999-08-27 23:37:10 +00:00
Mike Pritchard
2ce66fb320 Various man page cleanup:
- Sort xrefs
- Be consistent with section names as outlined in mdoc(7).
- Other misc mdoc cleanup.

PR:		doc/13144
Submitted by:	Alexey M. Zelkin <phantom@cris.net>
1999-08-15 09:06:06 +00:00
Tim Vanderhoek
de50b4a3b8 Remove explicit testing of the NOFSCHG variable. Its functionality (in this
file) is now superceeded by INSTALLFLAGS_EDIT in bsd.{prog,kmod,lib}.mk.
1999-07-31 20:32:31 +00:00
Tim Vanderhoek
e20ff07727 Respect the NOFSCHG variable. Add an $Id$ while I'm here, for whatever
reason Makefiles need $Id$.
1999-07-05 02:46:20 +00:00
Andrey A. Chernov
24c56392de little optimization of locale sensing code 1999-06-09 00:07:10 +00:00
Andrey A. Chernov
8e8cc94742 Just ignore malformed locale variable unless -d specified 1999-06-08 14:59:12 +00:00
Andrey A. Chernov
e5eeb99e2b Localize NEQN part too 1999-06-07 19:23:04 +00:00
Andrey A. Chernov
ccb357e4ea Add ability to read/write localized manpages 1999-06-07 18:36:00 +00:00
Andrey A. Chernov
46c0a1dd07 remove getopt & friend declarations, now unistd.h included 1999-06-05 16:05:40 +00:00
Andrey A. Chernov
1bae15ffb0 fix typo preventing to include unistd.h 1999-06-05 15:59:51 +00:00
Andrey A. Chernov
ba3f6b8c4d fix typo uid_t -> gid_t
add unsigned char cast to ctype macros
1999-05-13 15:48:18 +00:00
Joseph Koshy
1ec712bb64 Add a reference to man(7). 1998-12-03 02:32:20 +00:00
Matthew Dillon
4ca3da528e Added reference to mdoc(7) and mdoc.samples(7) to the bottom of
man(1).  The man manual page is the obvious first place that people
    who are trying to write manual pages look.
1998-12-01 06:35:06 +00:00
Bruce Evans
15d0bb0b98 Use foo/bar.a' instead of -Lfoo -lbar' for linking to static internal
libraries so that `ld -f' in can create correct dependencies for
yet-to-be-built libraries.

Get the default BINDIR correctly (by including ../Makefile.inc recursively.
1998-03-07 09:46:17 +00:00
Steve Price
edec52ad1a Remove manpath.[ch] here and use the ones in ../manpath instead. 1997-11-30 20:08:27 +00:00
Steve Price
bab06090f9 Always call gripe_reading_mp_config with the required arguments.
PR:		3894
Submitted by:	Stephen Clawson <sclawson@marker.cs.utah.edu>
1997-11-30 01:01:47 +00:00
John Polstra
14b94d0464 Add missing argument detected by "-Wformat". 1997-11-18 03:37:45 +00:00
Poul-Henning Kamp
d030d2d2ae Many places in the code NULL is used in integer context, where
plain 0 should be used.  This happens to work because we #define
NULL to 0, but is stylistically wrong and can cause problems
for people trying to port bits of code to other environments.

PR:		2752
Submitted by:	Arne Henrik Juul <arnej@imf.unit.no>
1997-09-18 14:08:40 +00:00
Bruce Evans
a9d9f5acb1 Fixed bogus existence test related to searching for a nearby obj
directory.  man.1 is always in the current (= object) directory,
so don't search for it.
1997-04-10 16:13:17 +00:00
Mike Pritchard
00f7ecb490 Fix some file descriptor leaks. Closes PR# 2392.
2.2 candidate.
1997-01-09 14:50:42 +00:00
Andrey A. Chernov
9730ef2973 Even more buffer overflow fixes
Change CATMODE to 0644, because group man not used
Add immutable sbit to man binary, so if user even got man uid,
he can't replace man binary with fake one

Should go to 2.2

Submitted by: Marc Slemko <marcs@znep.com> with small editing by me
1996-12-19 10:45:16 +00:00
Andrey A. Chernov
7a81e58e55 Fix many buffer overflows, sprintf -> snprintf
Fix manpath dirs count overflow

Should be in 2.2
1996-12-18 20:55:26 +00:00