Merge branch '2.3' into 2.4
This commit is contained in:
commit
771a5ec542
@ -6,15 +6,15 @@ drwxr-xr-x root/root etc/rc.d/
|
|||||||
-rwxr-xr-x root/root etc/rc.d/exim
|
-rwxr-xr-x root/root etc/rc.d/exim
|
||||||
drwxr-xr-x root/root usr/
|
drwxr-xr-x root/root usr/
|
||||||
drwxr-xr-x root/root usr/bin/
|
drwxr-xr-x root/root usr/bin/
|
||||||
lrwxrwxrwx root/root usr/bin/mailq -> ../sbin/exim-4.67-1
|
lrwxrwxrwx root/root usr/bin/mailq -> ../sbin/exim-4.68-1
|
||||||
drwxr-xr-x root/root usr/man/
|
drwxr-xr-x root/root usr/man/
|
||||||
drwxr-xr-x root/root usr/man/man8/
|
drwxr-xr-x root/root usr/man/man8/
|
||||||
-rw-r--r-- root/root usr/man/man8/exim.8.gz
|
-rw-r--r-- root/root usr/man/man8/exim.8.gz
|
||||||
drwxr-xr-x root/root usr/sbin/
|
drwxr-xr-x root/root usr/sbin/
|
||||||
-rwxr-xr-x root/root usr/sbin/exicyclog
|
-rwxr-xr-x root/root usr/sbin/exicyclog
|
||||||
-rwxr-xr-x root/root usr/sbin/exigrep
|
-rwxr-xr-x root/root usr/sbin/exigrep
|
||||||
lrwxrwxrwx root/root usr/sbin/exim -> exim-4.67-1
|
lrwxrwxrwx root/root usr/sbin/exim -> exim-4.68-1
|
||||||
-rwsr-xr-x root/root usr/sbin/exim-4.67-1
|
-rwsr-xr-x root/root usr/sbin/exim-4.68-1
|
||||||
-rwxr-xr-x root/root usr/sbin/exim_checkaccess
|
-rwxr-xr-x root/root usr/sbin/exim_checkaccess
|
||||||
-rwxr-xr-x root/root usr/sbin/exim_dbmbuild
|
-rwxr-xr-x root/root usr/sbin/exim_dbmbuild
|
||||||
-rwxr-xr-x root/root usr/sbin/exim_dumpdb
|
-rwxr-xr-x root/root usr/sbin/exim_dumpdb
|
||||||
@ -27,7 +27,7 @@ lrwxrwxrwx root/root usr/sbin/exim -> exim-4.67-1
|
|||||||
-rwxr-xr-x root/root usr/sbin/exiqgrep
|
-rwxr-xr-x root/root usr/sbin/exiqgrep
|
||||||
-rwxr-xr-x root/root usr/sbin/exiqsumm
|
-rwxr-xr-x root/root usr/sbin/exiqsumm
|
||||||
-rwxr-xr-x root/root usr/sbin/exiwhat
|
-rwxr-xr-x root/root usr/sbin/exiwhat
|
||||||
lrwxrwxrwx root/root usr/sbin/sendmail -> exim-4.67-1
|
lrwxrwxrwx root/root usr/sbin/sendmail -> exim-4.68-1
|
||||||
drwxr-xr-x root/root var/
|
drwxr-xr-x root/root var/
|
||||||
drwxr-xr-x root/root var/log/
|
drwxr-xr-x root/root var/log/
|
||||||
drwxr-x--- mail/mail var/log/exim/
|
drwxr-x--- mail/mail var/log/exim/
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
f1682811a7fd2897153c5b0e33177509 exim
|
f1682811a7fd2897153c5b0e33177509 exim
|
||||||
9ee83186d9ac99e5ff297112aa6fddf0 exim-4.67.tar.bz2
|
94c46a8bc24b3ad4ad892228449f378b exim-4.68.tar.bz2
|
||||||
f9edb79bd90e2b6e8233b2ef26e95aa9 exim-config.patch
|
f9edb79bd90e2b6e8233b2ef26e95aa9 exim-config.patch
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
# Depends on: db, openssl
|
# Depends on: db, openssl
|
||||||
|
|
||||||
name=exim
|
name=exim
|
||||||
version=4.67
|
version=4.68
|
||||||
release=1
|
release=1
|
||||||
source=(ftp://ftp.exim.org/pub/exim/exim4/$name-$version.tar.bz2 \
|
source=(ftp://ftp.exim.org/pub/exim/exim4/$name-$version.tar.bz2 \
|
||||||
$name $name-config.patch)
|
$name $name-config.patch)
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
b379693c8b89c99994e58efd49f98a71 rotatelog
|
b379693c8b89c99994e58efd49f98a71 rotatelog
|
||||||
ee4ba45c59bb1098c0b05b5546a46c2f sysklogd-1.4.1.patch
|
e053094e8103165f98ddafe828f6ae4b sysklogd-1.5.tar.gz
|
||||||
d214aa40beabf7bdb0c9b3c64432c774 sysklogd-1.4.1.tar.gz
|
|
||||||
bf5c13b44ab9fa15cda9bfa9df9b584e syslog
|
bf5c13b44ab9fa15cda9bfa9df9b584e syslog
|
||||||
022ca2758664748ae096d57eac9ac555 syslog.conf
|
022ca2758664748ae096d57eac9ac555 syslog.conf
|
||||||
|
@ -3,14 +3,13 @@
|
|||||||
# Maintainer: CRUX System Team, core-ports at crux dot nu
|
# Maintainer: CRUX System Team, core-ports at crux dot nu
|
||||||
|
|
||||||
name=sysklogd
|
name=sysklogd
|
||||||
version=1.4.1
|
version=1.5
|
||||||
release=5
|
release=1
|
||||||
source=(http://www.ibiblio.org/pub/Linux/system/daemons/$name-$version.tar.gz \
|
source=(http://www.ibiblio.org/pub/Linux/system/daemons/$name-$version.tar.gz \
|
||||||
rotatelog syslog syslog.conf $name-$version.patch)
|
rotatelog syslog syslog.conf)
|
||||||
|
|
||||||
build() {
|
build() {
|
||||||
cd $name-$version
|
cd $name-$version
|
||||||
patch -p1 < ../$name-$version.patch
|
|
||||||
mkdir -p $PKG/usr/sbin \
|
mkdir -p $PKG/usr/sbin \
|
||||||
$PKG/etc/cron/weekly \
|
$PKG/etc/cron/weekly \
|
||||||
$PKG/var/log \
|
$PKG/var/log \
|
||||||
|
@ -1,586 +0,0 @@
|
|||||||
diff -Nru sysklogd-1.4.1/Makefile sysklogd-1.4.1-new/Makefile
|
|
||||||
--- sysklogd-1.4.1/Makefile 1998-10-12 22:25:15.000000000 +0200
|
|
||||||
+++ sysklogd-1.4.1-new/Makefile 2004-09-21 23:00:34.656626400 +0200
|
|
||||||
@@ -3,13 +3,13 @@
|
|
||||||
CC= gcc
|
|
||||||
#CFLAGS= -g -DSYSV -Wall
|
|
||||||
#LDFLAGS= -g
|
|
||||||
-CFLAGS= $(RPM_OPT_FLAGS) -O3 -DSYSV -fomit-frame-pointer -Wall -fno-strength-reduce
|
|
||||||
-LDFLAGS= -s
|
|
||||||
+CFLAGS= $(RPM_OPT_FLAGS) -DSYSV -D_GNU_SOURCE -Wall
|
|
||||||
+LDFLAGS=
|
|
||||||
|
|
||||||
# Look where your install program is.
|
|
||||||
INSTALL = /usr/bin/install
|
|
||||||
-BINDIR = /usr/sbin
|
|
||||||
-MANDIR = /usr/man
|
|
||||||
+BINDIR = $(TOPDIR)/sbin
|
|
||||||
+MANDIR = $(TOPDIR)/usr/man
|
|
||||||
|
|
||||||
# There is one report that under an all ELF system there may be a need to
|
|
||||||
# explicilty link with libresolv.a. If linking syslogd fails you may wish
|
|
||||||
@@ -106,17 +106,51 @@
|
|
||||||
${CC} ${CFLAGS} -DTEST -o ksym_test.o -c ksym.c
|
|
||||||
|
|
||||||
clean:
|
|
||||||
- rm -f *.o *.log *~ *.orig
|
|
||||||
+ rm -f *.o *.log *~ *.orig sysklogd-*.tar.gz syslogd klogd
|
|
||||||
|
|
||||||
clobber: clean
|
|
||||||
rm -f syslogd klogd ksym syslog_tst oops_test TAGS tsyslogd tklogd
|
|
||||||
|
|
||||||
install_exec: syslogd klogd
|
|
||||||
- ${INSTALL} -m 500 -s syslogd ${BINDIR}/syslogd
|
|
||||||
- ${INSTALL} -m 500 -s klogd ${BINDIR}/klogd
|
|
||||||
+ ${INSTALL} -m 500 syslogd ${BINDIR}/syslogd
|
|
||||||
+ ${INSTALL} -m 500 klogd ${BINDIR}/klogd
|
|
||||||
|
|
||||||
install_man:
|
|
||||||
- ${INSTALL} -o ${MAN_OWNER} -g ${MAN_OWNER} -m 644 sysklogd.8 ${MANDIR}/man8/sysklogd.8
|
|
||||||
- ${INSTALL} -o ${MAN_OWNER} -g ${MAN_OWNER} -m 644 syslogd.8 ${MANDIR}/man8/syslogd.8
|
|
||||||
- ${INSTALL} -o ${MAN_OWNER} -g ${MAN_OWNER} -m 644 syslog.conf.5 ${MANDIR}/man5/syslog.conf.5
|
|
||||||
- ${INSTALL} -o ${MAN_OWNER} -g ${MAN_OWNER} -m 644 klogd.8 ${MANDIR}/man8/klogd.8
|
|
||||||
+ ${INSTALL} -m 644 sysklogd.8 ${MANDIR}/man8/sysklogd.8
|
|
||||||
+ ${INSTALL} -m 644 syslogd.8 ${MANDIR}/man8/syslogd.8
|
|
||||||
+ ${INSTALL} -m 644 syslog.conf.5 ${MANDIR}/man5/syslog.conf.5
|
|
||||||
+ ${INSTALL} -m 644 klogd.8 ${MANDIR}/man8/klogd.8
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+## Red Hat specific additions
|
|
||||||
+
|
|
||||||
+VER1 = $(shell awk '/VERSION/ { print $$3 }' version.h | sed 's|"||g')
|
|
||||||
+VER2 = $(shell awk '/PATCHLEVEL/ { print $$3 }' version.h | sed 's|"||g')
|
|
||||||
+VERSION = $(VER1).$(VER2)
|
|
||||||
+RELEASE = $(shell awk '/Release:/ { print $$2 }' sysklogd.spec.in)
|
|
||||||
+CVSTAG = sysklogd-$(subst .,_,$(VERSION))-$(subst .,-,$(RELEASE))
|
|
||||||
+
|
|
||||||
+changelog:
|
|
||||||
+ rcs2log | sed "s|@.*redhat\.com|@redhat.com|" | sed "s|@@|@|" | \
|
|
||||||
+ sed "s|/mnt/devel/CVS/sysklogd/||g" > redhat/changenew
|
|
||||||
+ mv redhat/ChangeLog redhat/ChangeLog.old
|
|
||||||
+ cat redhat/changenew redhat/ChangeLog.old > redhat/ChangeLog
|
|
||||||
+ rm -f redhat/changenew
|
|
||||||
+
|
|
||||||
+tag-archive:
|
|
||||||
+ @cvs -Q tag -F $(CVSTAG)
|
|
||||||
+
|
|
||||||
+create-archive:
|
|
||||||
+ @rm -rf /tmp/sysklogd
|
|
||||||
+ @cd /tmp ; cvs -Q -d $(CVSROOT) export -r$(CVSTAG) sysklogd || echo "Um... export aborted."
|
|
||||||
+ @sed 's/VERSIONSUBST/$(VERSION)/' < /tmp/sysklogd/sysklogd.spec.in > /tmp/sysklogd/sysklogd.spec
|
|
||||||
+ @rm /tmp/sysklogd/sysklogd.spec.in
|
|
||||||
+ @mv /tmp/sysklogd /tmp/sysklogd-$(VERSION)rh
|
|
||||||
+ @cd /tmp ; tar -czSpf sysklogd-$(VERSION)rh.tar.gz sysklogd-$(VERSION)rh
|
|
||||||
+ @rm -rf /tmp/sysklogd-$(VERSION)rh
|
|
||||||
+ @cp /tmp/sysklogd-$(VERSION)rh.tar.gz .
|
|
||||||
+ @rm -f /tmp/sysklogd-$(VERSION)rh.tar.gz
|
|
||||||
+ @echo ""
|
|
||||||
+ @echo "The final archive is in sysklogd-$(VERSION)rh.tar.gz"
|
|
||||||
+
|
|
||||||
+archive: clean tag-archive create-archive
|
|
||||||
diff -Nru sysklogd-1.4.1/klogd.c sysklogd-1.4.1-new/klogd.c
|
|
||||||
--- sysklogd-1.4.1/klogd.c 2001-03-11 20:40:10.000000000 +0100
|
|
||||||
+++ sysklogd-1.4.1-new/klogd.c 2004-09-21 23:00:13.203887712 +0200
|
|
||||||
@@ -275,6 +275,10 @@
|
|
||||||
#define ksyslog klogctl
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#ifndef _PATH_KLOG
|
|
||||||
+#define _PATH_KLOG "/proc/kmsg"
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
#define LOG_BUFFER_SIZE 4096
|
|
||||||
#define LOG_LINE_LENGTH 1000
|
|
||||||
|
|
||||||
@@ -291,7 +295,7 @@
|
|
||||||
terminate = 0,
|
|
||||||
caught_TSTP = 0,
|
|
||||||
reload_symbols = 0,
|
|
||||||
- console_log_level = -1;
|
|
||||||
+ console_log_level = 6;
|
|
||||||
|
|
||||||
static int use_syscall = 0,
|
|
||||||
one_shot = 0,
|
|
||||||
@@ -509,8 +513,7 @@
|
|
||||||
|
|
||||||
|
|
||||||
/* Set level of kernel console messaging.. */
|
|
||||||
- if ( (console_log_level != -1)
|
|
||||||
- && (ksyslog(8, NULL, console_log_level) < 0) && \
|
|
||||||
+ if ( (ksyslog(8, NULL, console_log_level) < 0) && \
|
|
||||||
(errno == EINVAL) )
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
@@ -887,8 +890,7 @@
|
|
||||||
value = strtoul(sym_start+1, (char **) 0, 16);
|
|
||||||
*(line-1) = '>'; /* put back delim */
|
|
||||||
|
|
||||||
- symbol = LookupSymbol(value, &sym);
|
|
||||||
- if ( !symbol_lookup || symbol == (char *) 0 )
|
|
||||||
+ if ( !symbol_lookup || (symbol = LookupSymbol(value, &sym)) == (char *)0 )
|
|
||||||
{
|
|
||||||
parse_state = PARSING_TEXT;
|
|
||||||
break;
|
|
||||||
@@ -938,7 +940,7 @@
|
|
||||||
* messages into this fresh buffer.
|
|
||||||
*/
|
|
||||||
memset(log_buffer, '\0', sizeof(log_buffer));
|
|
||||||
- if ( (rdcnt = ksyslog(2, log_buffer, sizeof(log_buffer))) < 0 )
|
|
||||||
+ if ( (rdcnt = ksyslog(2, log_buffer, sizeof(log_buffer)-1)) < 0 )
|
|
||||||
{
|
|
||||||
if ( errno == EINTR )
|
|
||||||
return;
|
|
||||||
@@ -1143,8 +1145,11 @@
|
|
||||||
if ( one_shot )
|
|
||||||
{
|
|
||||||
if (symbol_lookup) {
|
|
||||||
- InitKsyms(symfile);
|
|
||||||
- InitMsyms();
|
|
||||||
+ symbol_lookup = (InitKsyms(symfile) == 1);
|
|
||||||
+ symbol_lookup |= InitMsyms();
|
|
||||||
+ if (symbol_lookup == 0) {
|
|
||||||
+ Syslog(LOG_WARNING, "cannot find any symbols, turning off symbol lookups\n");
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
if ( (logsrc = GetKernelLogSrc()) == kernel )
|
|
||||||
LogKernelLine();
|
|
||||||
@@ -1159,8 +1164,11 @@
|
|
||||||
#endif
|
|
||||||
logsrc = GetKernelLogSrc();
|
|
||||||
if (symbol_lookup) {
|
|
||||||
- InitKsyms(symfile);
|
|
||||||
- InitMsyms();
|
|
||||||
+ symbol_lookup = (InitKsyms(symfile) == 1);
|
|
||||||
+ symbol_lookup |= InitMsyms();
|
|
||||||
+ if (symbol_lookup == 0) {
|
|
||||||
+ Syslog(LOG_WARNING, "cannot find any symbols, turning off symbol lookups\n");
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
/* The main loop. */
|
|
||||||
diff -Nru sysklogd-1.4.1/ksym.c sysklogd-1.4.1-new/ksym.c
|
|
||||||
--- sysklogd-1.4.1/ksym.c 2000-09-12 23:53:31.000000000 +0200
|
|
||||||
+++ sysklogd-1.4.1-new/ksym.c 2004-09-21 23:00:13.204887560 +0200
|
|
||||||
@@ -112,6 +112,7 @@
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <malloc.h>
|
|
||||||
#include <sys/utsname.h>
|
|
||||||
+#include <ctype.h>
|
|
||||||
#include "klogd.h"
|
|
||||||
#include "ksyms.h"
|
|
||||||
|
|
||||||
@@ -344,6 +345,7 @@
|
|
||||||
if ( (sym_file = fopen(symfile, "r")) != (FILE *) 0 ) {
|
|
||||||
if (CheckMapVersion(symfile) == 1)
|
|
||||||
file = symfile;
|
|
||||||
+ fclose(sym_file);
|
|
||||||
}
|
|
||||||
if (sym_file == (FILE *) 0 || file == (char *) 0) {
|
|
||||||
sprintf (symfile, "%s", *mf);
|
|
||||||
@@ -352,6 +354,7 @@
|
|
||||||
if ( (sym_file = fopen(symfile, "r")) != (FILE *) 0 ) {
|
|
||||||
if (CheckMapVersion(symfile) == 1)
|
|
||||||
file = symfile;
|
|
||||||
+ fclose(sym_file);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
diff -Nru sysklogd-1.4.1/ksym_mod.c sysklogd-1.4.1-new/ksym_mod.c
|
|
||||||
--- sysklogd-1.4.1/ksym_mod.c 2000-09-12 23:15:28.000000000 +0200
|
|
||||||
+++ sysklogd-1.4.1-new/ksym_mod.c 2004-09-21 23:00:13.205887408 +0200
|
|
||||||
@@ -93,7 +93,7 @@
|
|
||||||
#include <linux/time.h>
|
|
||||||
#include <linux/module.h>
|
|
||||||
#else /* __GLIBC__ */
|
|
||||||
-#include <linux/module.h>
|
|
||||||
+#include "module.h"
|
|
||||||
extern __off64_t lseek64 __P ((int __fd, __off64_t __offset, int __whence));
|
|
||||||
extern int get_kernel_syms __P ((struct kernel_sym *__table));
|
|
||||||
#endif /* __GLIBC__ */
|
|
||||||
diff -Nru sysklogd-1.4.1/module.h sysklogd-1.4.1-new/module.h
|
|
||||||
--- sysklogd-1.4.1/module.h 1970-01-01 01:00:00.000000000 +0100
|
|
||||||
+++ sysklogd-1.4.1-new/module.h 2004-09-21 23:00:13.205887408 +0200
|
|
||||||
@@ -0,0 +1,62 @@
|
|
||||||
+
|
|
||||||
+/* Module definitions for klogd's module support */
|
|
||||||
+struct kernel_sym
|
|
||||||
+{
|
|
||||||
+ unsigned long value;
|
|
||||||
+ char name[60];
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+struct module_symbol
|
|
||||||
+{
|
|
||||||
+ unsigned long value;
|
|
||||||
+ const char *name;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+struct module_ref
|
|
||||||
+{
|
|
||||||
+ struct module *dep; /* "parent" pointer */
|
|
||||||
+ struct module *ref; /* "child" pointer */
|
|
||||||
+ struct module_ref *next_ref;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+struct module_info
|
|
||||||
+{
|
|
||||||
+ unsigned long addr;
|
|
||||||
+ unsigned long size;
|
|
||||||
+ unsigned long flags;
|
|
||||||
+ long usecount;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+typedef struct { volatile int counter; } atomic_t;
|
|
||||||
+
|
|
||||||
+struct module
|
|
||||||
+{
|
|
||||||
+ unsigned long size_of_struct; /* == sizeof(module) */
|
|
||||||
+ struct module *next;
|
|
||||||
+ const char *name;
|
|
||||||
+ unsigned long size;
|
|
||||||
+
|
|
||||||
+ union
|
|
||||||
+ {
|
|
||||||
+ atomic_t usecount;
|
|
||||||
+ long pad;
|
|
||||||
+ } uc; /* Needs to keep its size - so says rth */
|
|
||||||
+
|
|
||||||
+ unsigned long flags; /* AUTOCLEAN et al */
|
|
||||||
+
|
|
||||||
+ unsigned nsyms;
|
|
||||||
+ unsigned ndeps;
|
|
||||||
+
|
|
||||||
+ struct module_symbol *syms;
|
|
||||||
+ struct module_ref *deps;
|
|
||||||
+ struct module_ref *refs;
|
|
||||||
+ int (*init)(void);
|
|
||||||
+ void (*cleanup)(void);
|
|
||||||
+ const struct exception_table_entry *ex_table_start;
|
|
||||||
+ const struct exception_table_entry *ex_table_end;
|
|
||||||
+#ifdef __alpha__
|
|
||||||
+ unsigned long gp;
|
|
||||||
+#endif
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
diff -Nru sysklogd-1.4.1/sysklogd.8 sysklogd-1.4.1-new/sysklogd.8
|
|
||||||
--- sysklogd-1.4.1/sysklogd.8 2001-03-11 20:35:51.000000000 +0100
|
|
||||||
+++ sysklogd-1.4.1-new/sysklogd.8 2004-09-21 23:00:13.206887256 +0200
|
|
||||||
@@ -30,6 +30,7 @@
|
|
||||||
.I domainlist
|
|
||||||
]
|
|
||||||
.RB [ " \-v " ]
|
|
||||||
+.RB [ " \-x " ]
|
|
||||||
.LP
|
|
||||||
.SH DESCRIPTION
|
|
||||||
.B Sysklogd
|
|
||||||
@@ -152,6 +153,11 @@
|
|
||||||
.TP
|
|
||||||
.B "\-v"
|
|
||||||
Print version and exit.
|
|
||||||
+.TP
|
|
||||||
+.B "\-x"
|
|
||||||
+Disable name lookups when receiving remote messages.
|
|
||||||
+This avoids deadlocks when the nameserver is running on
|
|
||||||
+the same machine that runs the syslog daemon.
|
|
||||||
.LP
|
|
||||||
.SH SIGNALS
|
|
||||||
.B Syslogd
|
|
||||||
diff -Nru sysklogd-1.4.1/syslog_tst.c sysklogd-1.4.1-new/syslog_tst.c
|
|
||||||
--- sysklogd-1.4.1/syslog_tst.c 1997-06-02 19:21:41.000000000 +0200
|
|
||||||
+++ sysklogd-1.4.1-new/syslog_tst.c 2004-09-21 23:00:13.206887256 +0200
|
|
||||||
@@ -42,7 +42,7 @@
|
|
||||||
if ( (nl = strrchr(bufr, '\n')) != \
|
|
||||||
(char *) 0)
|
|
||||||
*nl = '\0';
|
|
||||||
- syslog(LOG_INFO, bufr);
|
|
||||||
+ syslog(LOG_INFO, "%s", bufr);
|
|
||||||
logged += strlen(bufr);
|
|
||||||
if ( logged > 1024 )
|
|
||||||
{
|
|
||||||
@@ -54,7 +54,7 @@
|
|
||||||
}
|
|
||||||
else
|
|
||||||
while (argc-- > 1)
|
|
||||||
- syslog(LOG_INFO, argv++[1]);
|
|
||||||
+ syslog(LOG_INFO, "%s", argv++[1]);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
diff -Nru sysklogd-1.4.1/syslogd.c sysklogd-1.4.1-new/syslogd.c
|
|
||||||
--- sysklogd-1.4.1/syslogd.c 2001-03-11 20:40:10.000000000 +0100
|
|
||||||
+++ sysklogd-1.4.1-new/syslogd.c 2004-09-21 23:00:13.209886800 +0200
|
|
||||||
@@ -637,8 +637,8 @@
|
|
||||||
* in seconds after previous message is logged. After each flush,
|
|
||||||
* we move to the next interval until we reach the largest.
|
|
||||||
*/
|
|
||||||
-int repeatinterval[] = { 30, 60 }; /* # of secs before flush */
|
|
||||||
-#define MAXREPEAT ((sizeof(repeatinterval) / sizeof(repeatinterval[0])) - 1)
|
|
||||||
+time_t repeatinterval[] = { 30, 60 }; /* # of secs before flush */
|
|
||||||
+#define MAXREPEAT ((int) ((sizeof(repeatinterval) / sizeof(repeatinterval[0])) - 1))
|
|
||||||
#define REPEATTIME(f) ((f)->f_time + repeatinterval[(f)->f_repeatcount])
|
|
||||||
#define BACKOFF(f) { if (++(f)->f_repeatcount > MAXREPEAT) \
|
|
||||||
(f)->f_repeatcount = MAXREPEAT; \
|
|
||||||
@@ -730,6 +730,7 @@
|
|
||||||
int MarkInterval = 20 * 60; /* interval between marks in seconds */
|
|
||||||
int MarkSeq = 0; /* mark sequence number */
|
|
||||||
int NoFork = 0; /* don't fork - don't run in daemon mode */
|
|
||||||
+int DisableDNS = 0; /* don't look up IP addresses of incoming messages */
|
|
||||||
int AcceptRemote = 0; /* receive messages that come via UDP */
|
|
||||||
char **StripDomains = NULL; /* these domains may be stripped before writing logs */
|
|
||||||
char **LocalHosts = NULL; /* these hosts are logged with their hostname */
|
|
||||||
@@ -743,7 +744,7 @@
|
|
||||||
char **crunch_list(char *list);
|
|
||||||
int usage(void);
|
|
||||||
void untty(void);
|
|
||||||
-void printchopped(const char *hname, char *msg, int len, int fd);
|
|
||||||
+void printchopped(const char *hname, char *msg, size_t len, int fd);
|
|
||||||
void printline(const char *hname, char *msg);
|
|
||||||
void printsys(char *msg);
|
|
||||||
void logmsg(int pri, char *msg, const char *from, int flags);
|
|
||||||
@@ -786,7 +787,7 @@
|
|
||||||
int len, num_fds;
|
|
||||||
#else /* __GLIBC__ */
|
|
||||||
#ifndef TESTING
|
|
||||||
- size_t len;
|
|
||||||
+ socklen_t len;
|
|
||||||
#endif
|
|
||||||
int num_fds;
|
|
||||||
#endif /* __GLIBC__ */
|
|
||||||
@@ -829,7 +830,7 @@
|
|
||||||
funix[i] = -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
- while ((ch = getopt(argc, argv, "a:dhf:l:m:np:rs:v")) != EOF)
|
|
||||||
+ while ((ch = getopt(argc, argv, "a:dhf:l:m:np:rs:vx")) != EOF)
|
|
||||||
switch((char)ch) {
|
|
||||||
case 'a':
|
|
||||||
if (nfunix < MAXFUNIX)
|
|
||||||
@@ -877,6 +878,9 @@
|
|
||||||
case 'v':
|
|
||||||
printf("syslogd %s.%s\n", VERSION, PATCHLEVEL);
|
|
||||||
exit (0);
|
|
||||||
+ case 'x':
|
|
||||||
+ DisableDNS = 1;
|
|
||||||
+ break;
|
|
||||||
case '?':
|
|
||||||
default:
|
|
||||||
usage();
|
|
||||||
@@ -890,11 +894,11 @@
|
|
||||||
dprintf("Checking pidfile.\n");
|
|
||||||
if (!check_pid(PidFile))
|
|
||||||
{
|
|
||||||
+ signal (SIGTERM, doexit);
|
|
||||||
if (fork()) {
|
|
||||||
/*
|
|
||||||
* Parent process
|
|
||||||
*/
|
|
||||||
- signal (SIGTERM, doexit);
|
|
||||||
sleep(300);
|
|
||||||
/*
|
|
||||||
* Not reached unless something major went wrong. 5
|
|
||||||
@@ -906,6 +910,7 @@
|
|
||||||
*/
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
+ signal (SIGTERM, SIG_DFL);
|
|
||||||
num_fds = getdtablesize();
|
|
||||||
for (i= 0; i < num_fds; i++)
|
|
||||||
(void) close(i);
|
|
||||||
@@ -1074,9 +1079,9 @@
|
|
||||||
(fd_set *) NULL, (struct timeval *) NULL);
|
|
||||||
if ( restart )
|
|
||||||
{
|
|
||||||
+ restart = 0;
|
|
||||||
dprintf("\nReceived SIGHUP, reloading syslogd.\n");
|
|
||||||
init();
|
|
||||||
- restart = 0;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (nfds == 0) {
|
|
||||||
@@ -1145,8 +1150,7 @@
|
|
||||||
dprintf("INET socket error: %d = %s.\n", \
|
|
||||||
errno, strerror(errno));
|
|
||||||
logerror("recvfrom inet");
|
|
||||||
- /* should be harmless now that we set
|
|
||||||
- * BSDCOMPAT on the socket */
|
|
||||||
+ /* should be harmless */
|
|
||||||
sleep(10);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1174,7 +1178,7 @@
|
|
||||||
|
|
||||||
int usage()
|
|
||||||
{
|
|
||||||
- fprintf(stderr, "usage: syslogd [-drvh] [-l hostlist] [-m markinterval] [-n] [-p path]\n" \
|
|
||||||
+ fprintf(stderr, "usage: syslogd [-drvxh] [-l hostlist] [-m markinterval] [-n] [-p path]\n" \
|
|
||||||
" [-s domainlist] [-f conffile]\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
@@ -1232,15 +1236,6 @@
|
|
||||||
close(fd);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
- /* We need to enable BSD compatibility. Otherwise an attacker
|
|
||||||
- * could flood our log files by sending us tons of ICMP errors.
|
|
||||||
- */
|
|
||||||
- if (setsockopt(fd, SOL_SOCKET, SO_BSDCOMPAT, \
|
|
||||||
- (char *) &on, sizeof(on)) < 0) {
|
|
||||||
- logerror("setsockopt(BSDCOMPAT), suspending inet");
|
|
||||||
- close(fd);
|
|
||||||
- return -1;
|
|
||||||
- }
|
|
||||||
if (bind(fd, (struct sockaddr *) &sin, sizeof(sin)) < 0) {
|
|
||||||
logerror("bind, suspending inet");
|
|
||||||
close(fd);
|
|
||||||
@@ -1254,30 +1249,26 @@
|
|
||||||
crunch_list(list)
|
|
||||||
char *list;
|
|
||||||
{
|
|
||||||
- int count, i;
|
|
||||||
+ int i, m, n;
|
|
||||||
char *p, *q;
|
|
||||||
char **result = NULL;
|
|
||||||
|
|
||||||
p = list;
|
|
||||||
|
|
||||||
/* strip off trailing delimiters */
|
|
||||||
- while (p[strlen(p)-1] == LIST_DELIMITER) {
|
|
||||||
- count--;
|
|
||||||
+ while (*p && p[strlen(p)-1] == LIST_DELIMITER)
|
|
||||||
p[strlen(p)-1] = '\0';
|
|
||||||
- }
|
|
||||||
/* cut off leading delimiters */
|
|
||||||
- while (p[0] == LIST_DELIMITER) {
|
|
||||||
- count--;
|
|
||||||
+ while (p[0] == LIST_DELIMITER)
|
|
||||||
p++;
|
|
||||||
- }
|
|
||||||
|
|
||||||
- /* count delimiters to calculate elements */
|
|
||||||
- for (count=i=0; p[i]; i++)
|
|
||||||
- if (p[i] == LIST_DELIMITER) count++;
|
|
||||||
+ /* count delimiters to calculate the number of elements */
|
|
||||||
+ for (n = i = 0; p[i]; i++)
|
|
||||||
+ if (p[i] == LIST_DELIMITER) n++;
|
|
||||||
|
|
||||||
- if ((result = (char **)malloc(sizeof(char *) * count+2)) == NULL) {
|
|
||||||
+ if ((result = (char **)malloc(sizeof(char *) * (n + 2))) == NULL) {
|
|
||||||
printf ("Sorry, can't get enough memory, exiting.\n");
|
|
||||||
- exit(0);
|
|
||||||
+ exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
@@ -1285,30 +1276,28 @@
|
|
||||||
* characters are different from any delimiters,
|
|
||||||
* so we don't have to care about this.
|
|
||||||
*/
|
|
||||||
- count = 0;
|
|
||||||
- while ((q=strchr(p, LIST_DELIMITER))) {
|
|
||||||
- result[count] = (char *) malloc((q - p + 1) * sizeof(char));
|
|
||||||
- if (result[count] == NULL) {
|
|
||||||
+ m = 0;
|
|
||||||
+ while ((q = strchr(p, LIST_DELIMITER)) && m < n) {
|
|
||||||
+ result[m] = (char *) malloc((q - p + 1) * sizeof(char));
|
|
||||||
+ if (result[m] == NULL) {
|
|
||||||
printf ("Sorry, can't get enough memory, exiting.\n");
|
|
||||||
- exit(0);
|
|
||||||
+ exit(1);
|
|
||||||
}
|
|
||||||
- strncpy(result[count], p, q - p);
|
|
||||||
- result[count][q - p] = '\0';
|
|
||||||
+ memcpy(result[m], p, q - p);
|
|
||||||
+ result[m][q - p] = '\0';
|
|
||||||
p = q; p++;
|
|
||||||
- count++;
|
|
||||||
+ m++;
|
|
||||||
}
|
|
||||||
- if ((result[count] = \
|
|
||||||
- (char *)malloc(sizeof(char) * strlen(p) + 1)) == NULL) {
|
|
||||||
+ if ((result[m] = strdup(p)) == NULL) {
|
|
||||||
printf ("Sorry, can't get enough memory, exiting.\n");
|
|
||||||
- exit(0);
|
|
||||||
+ exit(1);
|
|
||||||
}
|
|
||||||
- strcpy(result[count],p);
|
|
||||||
- result[++count] = NULL;
|
|
||||||
+ result[++m] = NULL;
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
- count=0;
|
|
||||||
- while (result[count])
|
|
||||||
- dprintf ("#%d: %s\n", count, StripDomains[count++]);
|
|
||||||
+ m = 0;
|
|
||||||
+ while (result[m])
|
|
||||||
+ dprintf ("#%d: %s\n", m, result[m++]);
|
|
||||||
#endif
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
@@ -1346,7 +1335,7 @@
|
|
||||||
void printchopped(hname, msg, len, fd)
|
|
||||||
const char *hname;
|
|
||||||
char *msg;
|
|
||||||
- int len;
|
|
||||||
+ size_t len;
|
|
||||||
int fd;
|
|
||||||
{
|
|
||||||
auto int ptlngth;
|
|
||||||
@@ -1446,6 +1435,7 @@
|
|
||||||
while ((c = *p++) && q < &line[sizeof(line) - 4]) {
|
|
||||||
if (c == '\n')
|
|
||||||
*q++ = ' ';
|
|
||||||
+#if 0
|
|
||||||
else if (c < 040) {
|
|
||||||
*q++ = '^';
|
|
||||||
*q++ = c ^ 0100;
|
|
||||||
@@ -1454,7 +1444,9 @@
|
|
||||||
*q++ = '0' + ((c & 0300) >> 6);
|
|
||||||
*q++ = '0' + ((c & 0070) >> 3);
|
|
||||||
*q++ = '0' + (c & 0007);
|
|
||||||
- } else
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
+ else
|
|
||||||
*q++ = c;
|
|
||||||
}
|
|
||||||
*q = '\0';
|
|
||||||
@@ -1839,7 +1831,7 @@
|
|
||||||
#else
|
|
||||||
&& e == EBADF) {
|
|
||||||
#endif
|
|
||||||
- f->f_file = open(f->f_un.f_fname, O_WRONLY|O_APPEND|O_NOCTTY);
|
|
||||||
+ f->f_file = open(f->f_un.f_fname, O_WRONLY|O_APPEND|O_NOCTTY|O_LARGEFILE);
|
|
||||||
if (f->f_file < 0) {
|
|
||||||
f->f_type = F_UNUSED;
|
|
||||||
logerror(f->f_un.f_fname);
|
|
||||||
@@ -1929,7 +1921,7 @@
|
|
||||||
/* is this slot used? */
|
|
||||||
if (ut.ut_name[0] == '\0')
|
|
||||||
continue;
|
|
||||||
- if (ut.ut_type == LOGIN_PROCESS)
|
|
||||||
+ if (ut.ut_type != USER_PROCESS)
|
|
||||||
continue;
|
|
||||||
if (!(strcmp (ut.ut_name,"LOGIN"))) /* paranoia */
|
|
||||||
continue;
|
|
||||||
@@ -2013,7 +2005,10 @@
|
|
||||||
dprintf("Malformed from address.\n");
|
|
||||||
return ("???");
|
|
||||||
}
|
|
||||||
- hp = gethostbyaddr((char *) &f->sin_addr, sizeof(struct in_addr), \
|
|
||||||
+ if (DisableDNS)
|
|
||||||
+ hp = 0;
|
|
||||||
+ else
|
|
||||||
+ hp = gethostbyaddr((char *) &f->sin_addr, sizeof(struct in_addr), \
|
|
||||||
f->sin_family);
|
|
||||||
if (hp == 0) {
|
|
||||||
dprintf("Host name for your address (%s) unknown.\n",
|
|
||||||
@@ -2640,7 +2635,7 @@
|
|
||||||
f->f_file = open(++p, O_RDWR|O_NONBLOCK);
|
|
||||||
f->f_type = F_PIPE;
|
|
||||||
} else {
|
|
||||||
- f->f_file = open(p, O_WRONLY|O_APPEND|O_CREAT|O_NOCTTY,
|
|
||||||
+ f->f_file = open(p, O_WRONLY|O_APPEND|O_CREAT|O_NOCTTY|O_LARGEFILE,
|
|
||||||
0644);
|
|
||||||
f->f_type = F_FILE;
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user