Commit graph

173 commits

Author SHA1 Message Date
Dag-Erling Smørgrav db87d61acf The previous commit appeared to just shove the bug under the carpet rather
than really solve it.  This approach (inspired by Ruslan's patch) solves
the real problem by stripping the local domain off the host name in the
config line structure.

Also mark a bunch of code sections that either do not check the return value
of a strdup(), malloc() or calloc() call, or do not properly handle a NULL
return.
2001-09-13 06:48:41 +00:00
Dag-Erling Smørgrav a5cc8abe03 Fix logging from remote hosts, which has been broken since (at least) revision
1.64, i.e. July of last year.  Also fix a minor style bug in the same code.

PR:		bin/28634
Pointy hat to:	dwmalone
Pointed out by:	my buggy DSL router's remote logging facility
2001-09-13 05:09:14 +00:00
Ruslan Ermilov 7e848a7014 Fixed the free(3) panic overlooked due to the -Wno-uninitialized. 2001-09-11 08:18:04 +00:00
Dima Dorfman df755a4837 Use CFLAGS instead of COPTS. 2001-09-09 14:30:36 +00:00
Dima Dorfman d3ca0b131b - Silence warnings: apply `const' generously, mark some variables
__unused, and change local variables named `sin' (struct
  sockaddr_in) to `sin4'.  (`sin' conflicts with the definition of
  sin(3), which gcc assumes to be defined even if math.h isn't
  included (it's a builtin).  This is probably a bug in gcc.)

- Apply WARNS=1.  WARNS=2 was not used because this program assigns
  string literals to (struct iovec).iov_base for writing, and the only
  clean way to silence -Wwrite-strings in that case would be to
  strdup() and consequently free() those literals, which I considered
  too disruptive.

Reviewed by:	bde (partially)
2001-09-09 14:25:02 +00:00
Kris Kennaway 7e2f1d04d8 Correct a last minute sizeof() bogon in my previous commit. 2001-09-05 05:20:31 +00:00
Dima Dorfman f676ae2b46 Introduce a -b option that allows the user to specify which address to
bind to.  This is useful for hosts running jails that need syslog to
maintain an open socket to log to a remote host.

Reviewed by:	sheldonh
2001-09-01 08:42:49 +00:00
Kris Kennaway dc2bdcbddf Fix some unsafe signal handlers, and be careful not to overflow on fd_set.
Fix some string buffer operations.

Based on:	OpenBSD
Reviewed by:	audit
MFC after:	2 weeks
2001-09-01 07:57:35 +00:00
Crist J. Clark 7ae71655e7 Fix some small errors and markup nits.
Approved by:	ru
MFC after:	2 days
2001-08-28 19:10:51 +00:00
Crist J. Clark ba1cc9067d Gives syslogd(8) the ability to refresh its idea of the hostname of
the system on which it is running. The hostname is reloaded when
'HUPped' and a log message generated to note a change (before anyone
points it out, this is not an added security feature).

PR:		bin/24444
Reviewed by:	freebsd-audit
Approved by:	ru
MFC after:	2 weeks
2001-08-27 21:37:15 +00:00
Dima Dorfman 9e5726611c Don't make it sound like -A is turning on the default behavior. 2001-08-27 11:04:09 +00:00
Brian Somers 36c1612b5e Handle snprintf() returning -1.
MFC after:	2 weeks
2001-08-20 13:24:39 +00:00
Ruslan Ermilov 94ba280c59 mdoc(7) police: join split punctuation to macro calls. 2001-08-10 17:35:21 +00:00
David E. O'Brien 90e655ea4e Perform a major cleanup of the usr.sbin Makefiles.
These are not perfectly in agreement with each other style-wise, but they
are orders of orders of magnitude more consistent style-wise than before.
2001-07-20 06:20:32 +00:00
David E. O'Brien ac24b049cc Remove GCC'isms in CFLAGS. 2001-07-20 04:23:13 +00:00
Hajimu UMEMOTO 74fd29e0bc - `-a' option for IPv6 was not working correctly.
- Lose any stray host bits that a user may have entered when providing
  a network number and netmask to the `-a' option for IPv6.  This is
  corresponding to 1.79 that is for IPv4 only.

MFC after:	1 week
2001-07-19 22:04:09 +00:00
Mike Barcroft e3608b7813 Document the fact that syslogd(8) requires logs files to be created
before it will start logging to them.

PR:		27088
Approved by:	des
MFC after:	10 days
2001-07-18 13:31:08 +00:00
Dima Dorfman f247324df7 Remove whitespace at EOL. 2001-07-15 08:06:20 +00:00
Ruslan Ermilov a4c37c816b mdoc(7) police: removed HISTORY info from the .Os call. 2001-07-10 15:12:08 +00:00
Dima Dorfman 70d51341bf mdoc(7) police: remove extraneous .Pp before and/or after .Sh. 2001-07-09 09:54:33 +00:00
Crist J. Clark 6ca048f825 Lose any stray host bits that a user may have entered when providing
a network number and netmask to the '-a' option.

Approved by:	ru
MFC after:	1 week
2001-07-02 15:26:47 +00:00
Ruslan Ermilov be5c8032a0 Note that -a is ignored if -s is also specified. 2001-06-06 12:48:22 +00:00
David Malone 38f612a1e6 Fix constness warning introduced in syslog.h 1.21. 2001-05-21 22:13:55 +00:00
Ruslan Ermilov 8fcaaa2e12 mdoc(7) police: uppercase abbreviations in revision 1.34. 2001-05-16 09:43:48 +00:00
David Malone f0ee959841 Add the ability to specify alternate PID file for syslogd.
PR:		25784
Submitted by:	Jon Villarreal <jonv@ivmg.net>
Reviewed by:	iedowse
2001-05-10 15:48:33 +00:00
Ruslan Ermilov 90b4a69f41 mdoc(7) police: removed hard sentence break. 2001-04-04 11:33:01 +00:00
Chris Timmons 5c620e2dad Document LOG_CONSOLE. 2001-03-27 19:55:53 +00:00
Ruslan Ermilov 345e52e742 - Backout botched attempt to introduce MANSECT feature.
- MAN[1-9] -> MAN.
2001-03-26 14:42:20 +00:00
Brian Somers e47bf70d00 MAXHOSTNAMELEN includes the NUL 2001-03-09 21:24:13 +00:00
Ruslan Ermilov bcdf5ca7c6 Prepare for mdocNG. 2001-02-26 09:05:48 +00:00
David Malone 8bc588fa15 This seems to stop syslog console messages looping. The problem
is that LOG_FAC doesn't do quite what you think it does.

PR:		24704
2001-02-04 15:16:08 +00:00
Ruslan Ermilov 610a5778c5 mdoc(7) police: split punctuation characters + misc fixes. 2001-02-01 16:44:04 +00:00
Ruslan Ermilov 8b5c4af3ff Prepare for mdoc(7)NG. 2000-12-27 15:30:30 +00:00
Ruslan Ermilov e0b32a7704 mdoc(7) police: document IPv6 options in the SYNOPSIS. 2000-12-18 08:42:58 +00:00
Hajimu UMEMOTO 3881628990 IPv6 support for syslogd.
Reviewed by:	freebsd-current
Obtained from:	NetBSD
2000-12-16 18:25:48 +00:00
Poul-Henning Kamp ea250e5b03 Add the "LOG_CONSOLE" facility and tell syslogd to not log it on
console devices.
2000-11-25 21:00:58 +00:00
Ruslan Ermilov e97407b4f2 mdoc(7) police: use the new features of the Nm macro. 2000-11-20 20:10:44 +00:00
David Malone 481a19023e Syslogd normally converts messages of facility kern to facility
user unless they come directly from the kernel. Document this and
add a flag to syslogd which prevents this conversion.

Sort getopt args while I'm at it.

PR:		21788
Submitted by:	Andre Albsmeier <andre.albsmeier@mchp.siemens.de>
2000-10-17 10:19:42 +00:00
David Malone bcfe1db87d Fix spelling of comparison. 2000-10-17 10:14:51 +00:00
Alfred Perlstein 39e31cdb6a Add forgotten -n option to SYNOPSIS section
Submitted by: Reinier Bezuidenhout <rbezuide@oskar.nanoteq.co.za>
2000-09-23 22:38:56 +00:00
Warner Losh 2944167915 Fix unexploitable off by one error as mentioned on Bugtraq. 2000-09-19 21:22:20 +00:00
Paul Saab d30693998e Update the usage string to reflect -n as an option. 2000-08-07 01:09:25 +00:00
Paul Saab 2835a5d8c7 Actually make syslogd understand the new -n option by putting it
in getopt.

Submitted by:	Clive Lin <clive@CirX.ORG>
2000-08-07 01:00:01 +00:00
David Malone 23e726a0d8 Sort cases in getopt switch statement.
Remove extra parens from my host selection commit.
Add white space after if, while, for and switch.
Get rid of braces around a single statement if.

There should be no functional changes in this commit.

Reviewed by:	sheldonh
2000-08-03 15:19:27 +00:00
David Malone 3b2084258c Replace two calls to strlen+calloc+strcpy with strdup.
Reviewed by:	sheldonh
2000-08-03 15:12:06 +00:00
Paul Saab ede8823b0d Change option -r to -n inline with conventions we use elsewhere.
I guess it serves me right for using a patch directly from Jan
Koum.  :)

Requested by:	many
2000-07-29 04:02:34 +00:00
Paul Saab 779fbd1bc3 Add option 'r' to syslogd which will disable dns queries for every
request.  This is useful when you have a large site pointed at a
single syslog server.

Submitted by:	Jan Koum <jkb@yahoo-inc.com>
2000-07-29 01:37:37 +00:00
David Malone a144588d15 Allow syslogd to select messages based on the originating host in
a similar way to the way it can select messages from a given program.

Lines beginning with "+hostname" or "#+hostname" select messaes
from that hostname and lines beginning with "-hostname" or "#-hostname"
match messages not from that hostname.

There are some significant style issues left in the original program
selection code and the man page. This should be cleared up in some
later commits.

Reviewed by:	sheldonh
Based on an original patch by:    Bernd Walter <ticso@cicely8.cicely.de>
Man page stylist:	sheldonh
2000-07-24 14:10:17 +00:00
Kris Kennaway a8cc952fab Prevent a non-exploitable remote buffer overflow.
Reported by:	twitch <twitch@vicar.org>
Submitted by:	Guido van Rooij <guido@gvr.org>
Reviewed by:	security-officer
2000-06-08 03:54:45 +00:00
Jake Burkholder e39756439c Back out the previous change to the queue(3) interface.
It was not discussed and should probably not happen.

Requested by:		msmith and others
2000-05-26 02:09:24 +00:00
Jake Burkholder 740a1973a6 Change the way that the queue(3) structures are declared; don't assume that
the type argument to *_HEAD and *_ENTRY is a struct.

Suggested by:	phk
Reviewed by:	phk
Approved by:	mdodd
2000-05-23 20:41:01 +00:00
Andrey A. Chernov 8d396be510 Enable 8bit chars excepting high controls 2000-04-18 01:12:27 +00:00
Sheldon Hearn f2e366a105 Remove single-space hard sentence breaks. These degrade the quality
of the typeset output, tend to make diffs harder to read and provide
bad examples for new-comers to mdoc.
2000-03-01 14:09:25 +00:00
Joerg Wunsch debf48c59c Fix a nit in my previous commit: make SIGHUP and SIGCHLD restartable
as they ought to be.  The description of SA_RESTART was a little
unobvious to me in the man page, so i missed it.  Thanks to Bruce for
spotting this.

Submitted by:	bde
2000-02-29 08:02:29 +00:00
Joerg Wunsch 6b5c2dd6a1 Fix a serious bug in syslogd regarding the handling of pipes. The bug
would cause syslogd to eventually kill innocent processes in the
system over time (note: not `could' but `would').  Many thanks to my
colleague Mirko for digging into the kernel structures and providing
me with the debugging framework to find out about the nature of this
bug (and to isolate that syslogd was the culprit) in a rather large
set of distributed machines at client sites where this happened
occasionally.

Whenever a child process was no longer responsive, or when syslogd
receives a SIGHUP so it closes all its logging file descriptors, for
any descriptor that refers to a pipe syslogd enters the data about the
old logging child process into a `dead queue', where it is being
removed from (and the status of the dead kitten being fetched) upon
receipt of a SIGCHLD.  However, there's a high probability that the
SIGCHLD already arrives before the child's data are actually entered
into the dead queue inside the SIGHUP handler, so the SIGCHLD handler
has nothing to fetch and remove and simply continues.  Whenever this
happens, the process'es data remain on the dead queue forever, and
since domark() tried to get rid of totally unresponsive children by
first sending a SIGTERM and later a SIGKILL, it was only a matter of
time until the system had recycled enough PIDs so an innocent process
got shot to death.

Fix the race by masking SIGHUP and SIGCHLD from both handlers mutually.

Add additional bandaids ``just in case'', i. e. don't enter a process
into the dead queue if we can't signal it (this should only happen in
case it is already dead by that time so we can fetch the status
immediately instead of deferring this to the SIGCHLD handler); for the
kill(2) inside domark(), check for an error status (/* Can't happen */
:) and remove it from the dead queue in this case (which if it would
have been there in the first place would have reduced the problem to a
statistically minimal likelihood so i certainly would never have
noticed the bug at all :).

Mirko also reviewed the fix in priciple (mutual blocking of both
signals inside the handlers), but not the actual code.

Reviewed by:	Mirko Kaffka <mirko@interface-business.de>
Approved by:	jkh
2000-02-28 17:49:43 +00:00
Peter Wemm b5c060826a s|/dev/log|/var/run/log| 2000-02-14 13:26:57 +00:00
Philippe Charnier 922a51eea0 Add section number to .Xr. Use .Pa for filenames.
fprintf -> warnx.
2000-01-23 20:22:23 +00:00
Dag-Erling Smørgrav 3a62556310 Do this the Right Way (tm), i.e. use shutdown() instead of fooling around
with the size of the receive buffer.

Pointed out by:	ru
2000-01-14 15:37:18 +00:00
Dag-Erling Smørgrav 3a695cf8f7 Reflect the change in secure mode semantics, and document fascist mode
properly.
2000-01-14 15:10:36 +00:00
Dag-Erling Smørgrav e0d22b94e1 Slight change of secure mode semantics: instead of reading (and counting)
vogons, set the size of the receive buffer to 1 and rely on the kernel to
simply drop incoming packets. The logging code was buggy anyway.

Use socklen_t instead of int for the length argument to recvfrom.

Add a 'continue' at the end of a loop for ANSI conformance.
2000-01-14 15:09:06 +00:00
Ruslan Ermilov 533eb9138f Fix page fault in -vv mode.
PR:		16098
Submitted by:	Alan.Judge@indigo.ie
Reviewed by:	ru
2000-01-13 12:59:58 +00:00
Peter Wemm 97d92980a9 $Id$ -> $FreeBSD$ 1999-08-28 01:35:59 +00:00
Brian Feldman fa62586ae7 This is the addition of a syslog(3) security.* top-level category. This
should be used from now on for anything security but not auth-related.
Included are updates for all relevant manpages and also to /etc files,
creating a new /var/log/security. Nothing in the system logs to
/var/log/security yet as of the time of this commit.

Reviewed by:	rgrimes, imp, chris
1999-08-21 18:24:29 +00:00
Brian Somers 2d3411d359 Make hostname comparisons case insensitive 1999-08-17 01:25:16 +00:00
Dmitrij Tejblum 70c03db51c readklog(): rename variable 'l' to 'len', to avoid possible confusion with 'i'
and '1'.

Requested by:	mckay
1999-05-06 13:57:57 +00:00
Dag-Erling Smørgrav 4e880257b8 Is there a limit to how stupid I can get? 1999-05-04 18:03:59 +00:00
Dmitrij Tejblum 1b44fb0337 Little fix in previous: watch NUL-termination. 1999-05-02 17:44:16 +00:00
Dmitrij Tejblum 823da6884b Fight with false newlines in kernel message logs. Output a line into log only
after we read a newline, or we have nothing to read from /dev/klog. Read
/dev/klog in non-blocking mode.
1999-05-02 12:47:09 +00:00
Dag-Erling Smørgrav d35f30aa80 Implement fascist mode (do not open a datagram socket at all). 1999-04-30 12:51:20 +00:00
Chris Timmons c807beb495 Ensure a terminating null when processing hostname strings from
arbitrary sources.
Obtained from:	OpenBSD
1998-12-29 23:14:50 +00:00
Chris Timmons e1b5d1517c Accept "!*" as a valid all-programs tag line as documented.
PR:		8447
Submitted by:	Gaspar Chilingarov <nightmar@lemming.acc.am>
1998-12-29 20:36:22 +00:00
Chris Timmons 65f14c0055 Block SIGHUP during call to gethostbyaddr().
PR: 5548
Reviewed by: Matthew Dillon <dillon@apollo.backplane.com>
Obtained from: OpenBSD
1998-12-28 00:39:14 +00:00
Jordan K. Hubbard 60159a0633 Allow either tabs or spaces in configuration files.
PR:		8762
Submitted by:	Igor Roshchin <str@giganda.komkon.org>
1998-12-04 06:49:20 +00:00
David Greenman 624bb2d1c1 When warning about discarding packets in secure mode, include the IP
address of the most recent offender.
1998-11-05 10:51:21 +00:00
Julian Elischer 352ef9ec55 Submitted by: archie@whistle.com
quieten cc -Wall
1998-08-25 21:16:47 +00:00
Poul-Henning Kamp 6a19bdc8af Harlan.Stenn@pfcs.com added two (very interesting) options to syslogd for
-current (Thanks Harald). However, on my attempt to try this on -STABLE,
I found that when forwarding to another host the actual messages gets lost.
This is due to a wrong index because when the -v option was added, the
indexes shifted one place.

PR:		7407
Submitted by:	Andre Albsmeier <andre.albsmeier@mchp.siemens.de>
1998-07-27 13:04:14 +00:00
Poul-Henning Kamp 2eec1ab091 Add -u, -v and -vv options to syslogd, this improves the control and
logging verbosity about facility & priority levels.
PR:		7278
Reviewed by:	phk
Submitted by:	Harlan Stenn <Harlan.Stenn@pfcs.com>
1998-07-22 06:15:19 +00:00
Bruce Evans 78cda23056 Fixed printf format errors. 1998-07-06 20:28:08 +00:00
Guido van Rooij 1af721d635 Fix off by 1 error. 1998-07-02 19:35:40 +00:00
Steve Price 25d0f8a50c Note in log file if messages are being forwarded from a
remote machine.

PR:		7055
Submitted by:	Edwin Groothus <edwin@nwm.wan.philips.com>
1998-06-27 21:45:59 +00:00
Guido van Rooij 79962d3ede Implement new argument -l (OpenBSD has -a but we already use that).
This allows one to specify additional sockets in the unix domain
that syslogd listens to. Its primary use is to create log sockets in
chroot environments.
Obtained from:OpenBSD (with a bug fixed d
1998-06-25 19:39:19 +00:00
Julian Elischer e2c597dd6a Reviewed by: guido@mouse.gvr.org
Submitted by:	Archie@whistle.com
redo the last patch to allow differentiated kernel logging in
a much better way.
1998-06-24 23:50:20 +00:00
Julian Elischer d2b4b1fa20 Allow syslogd to separate out kernel log messages with a known
category.
e.g. separate out ipfw entries to a separate file.

Reviewed by:	(briefly) phk
Submitted by:	archie@whistle.com
Obtained from:	Whistle source tree
1998-06-10 04:34:56 +00:00
Poul-Henning Kamp 76aba7e431 Remove a bogus dependency on the size of the inkernel msgbuf.
This change is likely to introduce a few linebreaks in the boot
messages, but that is not easy to solve without breaking syslogd
semantics.  Maybe the right  fix is to return an integral number
of lines from the kernel driver.

Noticed by:	dg
1998-05-19 12:02:41 +00:00
Brian Somers a95587674c Make syslogd function in non-secure mode.
Log the correct ^2 packet as per the last commit comment.
1998-05-07 00:39:56 +00:00
Poul-Henning Kamp c46308e85c Augment the last change after some deliberation with rgrimes & peter.
It is important that we keep the ability to send packets to a remote
server and that the packets come from our well-known port, also in
that case.

Reviewed by:	peter, rgrimes.
1998-04-24 17:32:23 +00:00
Poul-Henning Kamp 94a60328c1 Even with '-s', syslogd still creates an AF_INET socket, although
it is not bind(2)ed.

PR:		6366
Reviewed by:	phk
Submitted by:	Soren S. Jorvang <soren@dt.dk>
1998-04-22 06:28:18 +00:00
James Raynard 194787f381 Don't assume sigset_t and int are equivalent. Also, get
sigprocmask arguments the right way round.
1998-02-28 15:14:00 +00:00
Philippe Charnier b8b7e105a9 Cosmetic in usage string. 1997-10-20 12:55:49 +00:00
Joerg Wunsch 605efc874f Documentation for the LOG_NTP facility. While i was at it, added a
bit of a warning about not all systems providing for the same set of
syslog facilities.
1997-10-06 20:37:50 +00:00
Brian Somers 173471e627 Use snprintf() instead of sprintf() most of the time.
Obtained from: OpenBSD

Make usage() consistent with man page.
1997-09-19 22:22:04 +00:00
Joerg Wunsch 81be6c75ba Explain a little more about the piping feature.
PR:		4122
1997-09-14 06:55:15 +00:00
Joerg Wunsch 3548606371 Nobody ever seemed to be interested in reviewing these changes, and i
found that my syslogd is now running them for several months...

Add an option to syslogd to restrict the IP addresses that are allowed
to log to this syslogd.  It's too late to develop the inter-syslogd
communications protocol mentioned in the BUGS section, some 10 years
too late.  Thus, restricting the IP address range is about the most
effective change we can do if we want to allow incoming syslog
messages at all.

IMHO, we should encourage the system administrators to use this option,
and thus provide a knob in /etc/rc.* for it, defaulting to -a 127.0.0.1/32
(just as a hint about the usage).

Please state opinions about whether to merge this change into 2.2 or
not (i've got it running on RELENG_2_2 anyway).
1997-05-03 22:17:43 +00:00
John-Mark Gurney 24685462af add an Id line, minor mdoc fix ups
add ftp to list of facilities in syslog.conf
Closes PR#3389
Submitted-by: Pius Fischer
1997-04-29 09:09:40 +00:00
Paul Traina cf27d94b69 Whoops -- code inspection showed I forgot to clean up getopt string 1997-04-26 00:03:21 +00:00
Paul Traina 26bed90fac Secure mode (-s) incorrectly disabled both sending and receiving of syslog
packets over UDP.  Secure boxes should still be able to send packets.
1997-04-26 00:00:33 +00:00
Warner Losh 6c3f552a31 compare return value from getopt against -1 rather than EOF, per the final
posix standard on the topic.
1997-03-31 05:11:47 +00:00
Joerg Wunsch d086327d14 Save and restore the state of the variable Initialized inside die().
Otherwise, the shutdown message will print out with 15 NUL bytes in
front, due to a missing timestamp.
1997-03-14 01:27:02 +00:00
Mike Pritchard 7fa793cc91 Typo police. 1997-02-22 18:57:36 +00:00
Peter Wemm 476602a9d0 Revert $FreeBSD$ to $Id$ 1997-02-22 16:15:28 +00:00