Compare commits
9 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e71d7a4325 | ||
|
|
42827f5f11 | ||
|
|
68b6b21a14 | ||
|
|
0021bc3a71 | ||
|
|
4715d2e809 | ||
|
|
24fe9386a8 | ||
|
|
23f8bbe425 | ||
|
|
cd8a7f0ace | ||
|
|
a0d8183d65 |
10 changed files with 187 additions and 22 deletions
0
.cvsignore → .gitignore
vendored
0
.cvsignore → .gitignore
vendored
21
Makefile
21
Makefile
|
|
@ -1,21 +0,0 @@
|
|||
# Makefile for source rpm: xinetd
|
||||
# $Id: Makefile,v 1.2 2007/10/15 19:32:02 notting Exp $
|
||||
NAME := xinetd
|
||||
SPECFILE = $(firstword $(wildcard *.spec))
|
||||
|
||||
define find-makefile-common
|
||||
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$d/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
|
||||
endef
|
||||
|
||||
MAKEFILE_COMMON := $(shell $(find-makefile-common))
|
||||
|
||||
ifeq ($(MAKEFILE_COMMON),)
|
||||
# attempt a checkout
|
||||
define checkout-makefile-common
|
||||
test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
|
||||
endef
|
||||
|
||||
MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
|
||||
endif
|
||||
|
||||
include $(MAKEFILE_COMMON)
|
||||
17
xinetd-2.3.13-log-crash.patch
Normal file
17
xinetd-2.3.13-log-crash.patch
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
244063: RHEL4 SIGSEGV in xinetd when application's logfile hit size limit
|
||||
|
||||
Written-By: Jan Safranek <jsafrane@redhat.com>
|
||||
|
||||
Initialize xl_callback_arg, so xinetd does not crash when it gets dereferenced.
|
||||
|
||||
diff -up xinetd-2.3.13/libs/src/xlog/xlog.c.orig xinetd-2.3.13/libs/src/xlog/xlog.c
|
||||
--- xinetd-2.3.13/libs/src/xlog/xlog.c.orig 2003-05-31 23:58:58.000000000 +0200
|
||||
+++ xinetd-2.3.13/libs/src/xlog/xlog.c 2007-12-05 15:31:08.000000000 +0100
|
||||
@@ -216,6 +216,7 @@ int xlog_control( xlog_h pxlog, xlog_cmd
|
||||
|
||||
case XLOG_CALLBACK:
|
||||
xp->xl_callback = va_arg( ap, voidfunc ) ;
|
||||
+ xp->xl_callback_arg = va_arg( ap, void * );
|
||||
break ;
|
||||
|
||||
case XLOG_GETFLAG:
|
||||
10
xinetd-2.3.14-clean-pfd.patch
Normal file
10
xinetd-2.3.14-clean-pfd.patch
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
--- xinetd-2.3.14/xinetd/service.c.orig 2010-03-18 17:09:20.000000000 +0100
|
||||
+++ xinetd-2.3.14/xinetd/service.c 2010-03-18 17:09:37.000000000 +0100
|
||||
@@ -470,6 +470,7 @@ void svc_deactivate( struct service *sp
|
||||
{
|
||||
#ifdef HAVE_POLL
|
||||
SVC_EVENTS( sp ) = 0;
|
||||
+ SVC_FD( sp ) = 0;
|
||||
#else
|
||||
FD_CLR( SVC_FD( sp ), &ps.rws.socket_mask ) ;
|
||||
#endif /* HAVE_POLL */
|
||||
22
xinetd-2.3.14-fix-type-punned-ptr.patch
Normal file
22
xinetd-2.3.14-fix-type-punned-ptr.patch
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
diff --git a/sensor.c b/sensor.c
|
||||
index 09d0877..e65018c 100644
|
||||
--- a/xinetd/sensor.c
|
||||
+++ b/xinetd/sensor.c
|
||||
@@ -100,14 +100,15 @@ void process_sensor( const struct service *sp, const union xsockaddr *addr)
|
||||
{
|
||||
/* Here again, eh?...update time stamp. */
|
||||
char *exp_time;
|
||||
- time_t stored_time;
|
||||
+ int stored_time;
|
||||
|
||||
item_matched--; /* Is # plus 1, to even get here must be >= 1 */
|
||||
exp_time = pset_pointer( global_no_access_time, item_matched ) ;
|
||||
if (exp_time == NULL)
|
||||
return ;
|
||||
|
||||
- if ( parse_base10(exp_time, (int *)&stored_time) )
|
||||
+ /* FIXME: Parse (long int) instead of (int) prior to possible Y2K38 bug. */
|
||||
+ if ( parse_base10(exp_time, &stored_time ) )
|
||||
{ /* if never let them off, bypass */
|
||||
if (stored_time != -1)
|
||||
{
|
||||
17
xinetd-2.3.14-ipv6confusion.patch
Normal file
17
xinetd-2.3.14-ipv6confusion.patch
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
--- xinetd-2.3.14/xinetd/ident.c.jw 2010-03-10 17:49:53.000000000 +1100
|
||||
+++ xinetd-2.3.14/xinetd/ident.c 2010-03-10 17:50:30.000000000 +1100
|
||||
@@ -108,12 +108,12 @@
|
||||
memcpy( &sin_bind, &sin_local, sizeof(sin_bind) ) ;
|
||||
local_port = 0;
|
||||
remote_port = 0;
|
||||
- if( sin_remote.sa.sa_family == AF_INET ) {
|
||||
+ if( sin_remote.sa.sa_family == AF_INET6 ) {
|
||||
local_port = ntohs( sin_local.sa_in6.sin6_port ) ;
|
||||
remote_port = ntohs( sin_remote.sa_in6.sin6_port ) ;
|
||||
sin_contact.sa_in6.sin6_port = htons( IDENTITY_SERVICE_PORT ) ;
|
||||
sin_bind.sa_in.sin_port = 0 ;
|
||||
- } else if( sin_remote.sa.sa_family == AF_INET6 ) {
|
||||
+ } else if( sin_remote.sa.sa_family == AF_INET ) {
|
||||
local_port = ntohs( sin_local.sa_in.sin_port ) ;
|
||||
remote_port = ntohs( sin_remote.sa_in.sin_port ) ;
|
||||
sin_contact.sa_in.sin_port = htons( IDENTITY_SERVICE_PORT ) ;
|
||||
30
xinetd-2.3.14-rpc-specific-port.patch
Normal file
30
xinetd-2.3.14-rpc-specific-port.patch
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
commit 1b91f7b0f67fba11ea8bbcdddef844656434c53c
|
||||
Author: Jeffrey Bastian <jbastian@redhat.com>
|
||||
Date: Tue Aug 17 13:45:20 2010 -0500
|
||||
|
||||
Let RPC services bind to a port
|
||||
|
||||
diff --git a/xinetd/service.c b/xinetd/service.c
|
||||
index 9f21f93..5d26885 100644
|
||||
--- a/xinetd/service.c
|
||||
+++ b/xinetd/service.c
|
||||
@@ -165,6 +165,7 @@ static status_e activate_rpc( struct service *sp )
|
||||
socklen_t sin_len = sizeof(tsin);
|
||||
unsigned long vers ;
|
||||
struct service_config *scp = SVC_CONF( sp ) ;
|
||||
+ uint16_t service_port = SC_PORT( scp ) ;
|
||||
struct rpc_data *rdp = SC_RPCDATA( scp ) ;
|
||||
char *sid = SC_ID( scp ) ;
|
||||
unsigned registered_versions = 0 ;
|
||||
@@ -181,9 +182,11 @@ static status_e activate_rpc( struct service *sp )
|
||||
}
|
||||
if( SC_IPV4( scp ) ) {
|
||||
tsin.sa_in.sin_family = AF_INET ;
|
||||
+ tsin.sa_in.sin_port = htons( service_port ) ;
|
||||
sin_len = sizeof(struct sockaddr_in);
|
||||
} else if( SC_IPV6( scp ) ) {
|
||||
tsin.sa_in6.sin6_family = AF_INET6 ;
|
||||
+ tsin.sa_in6.sin6_port = htons( service_port );
|
||||
sin_len = sizeof(struct sockaddr_in6);
|
||||
}
|
||||
|
||||
27
xinetd-2.3.14-signal-log-hang.patch
Normal file
27
xinetd-2.3.14-signal-log-hang.patch
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
--- a/xinetd/signals.c 2009-05-07 05:56:52.000000000 -0400
|
||||
+++ b/xinetd/signals.c.new 2009-05-07 05:56:44.000000000 -0400
|
||||
@@ -389,9 +390,11 @@
|
||||
break ;
|
||||
|
||||
default:
|
||||
- msg( LOG_NOTICE, func, "Unexpected signal %s", sig_name( sig ) ) ;
|
||||
- if ( debug.on && sig == SIGINT )
|
||||
- exit( 1 ) ;
|
||||
+ /* Let my_handler() queue this signal for later logging.
|
||||
+ Calling msg() and thus syslog() directly here can hang up
|
||||
+ the process, trying to acquire an already acquired lock,
|
||||
+ because another syslog() could have been the interrupted code. */
|
||||
+ my_handler(sig);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -495,6 +497,9 @@
|
||||
default:
|
||||
msg(LOG_ERR, func, "unexpected signal: %s in signal pipe",
|
||||
sig_name(sig));
|
||||
+
|
||||
+ if ( debug.on && sig == SIGINT )
|
||||
+ exit( 1 ) ;
|
||||
}
|
||||
}
|
||||
}
|
||||
12
xinetd-2.3.14-udp-reconfig.patch
Normal file
12
xinetd-2.3.14-udp-reconfig.patch
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
--- xinetd-2.3.14/xinetd/reconfig.c.orig 2010-06-01 12:58:18.000000000 +0200
|
||||
+++ xinetd-2.3.14/xinetd/reconfig.c 2010-06-01 12:58:23.000000000 +0200
|
||||
@@ -138,8 +138,8 @@ void hard_reconfig( void )
|
||||
* b. Terminate running servers and cancel retry attempts, in case
|
||||
* of reconfiguration
|
||||
*/
|
||||
- svc_deactivate( osp ) ;
|
||||
terminate_servers( osp ) ;
|
||||
+ svc_deactivate( osp ) ;
|
||||
cancel_service_retries( osp ) ;
|
||||
|
||||
/*
|
||||
53
xinetd.spec
53
xinetd.spec
|
|
@ -1,7 +1,7 @@
|
|||
Summary: A secure replacement for inetd
|
||||
Name: xinetd
|
||||
Version: 2.3.14
|
||||
Release: 28%{?dist}
|
||||
Release: 34%{?dist}
|
||||
License: xinetd
|
||||
Group: System Environment/Daemons
|
||||
Epoch: 2
|
||||
|
|
@ -19,10 +19,30 @@ Patch6: xinetd-2.3.14-man-section.patch
|
|||
Patch7: xinetd-2.3.11-PIE.patch
|
||||
Patch8: xinetd-2.3.14-ident-bind.patch
|
||||
Patch9: xinetd-2.3.14-readable-debuginfo.patch
|
||||
# Patch for clean reconfiguration using newer versions of autotools
|
||||
Patch10: xinetd-2.3.14-autoconf.patch
|
||||
# Completely rewritten socket handling code (it uses poll() instead
|
||||
# of select() function)
|
||||
Patch11: xinetd-2.3.14-poll.patch
|
||||
# New configuration option (limit for files opened by child process)
|
||||
Patch12: xinetd-2.3.14-file-limit.patch
|
||||
# When using tcpmux, xinetd ended up with sigsegv
|
||||
# (detection of NULL pointer in pollfd structure was missing)
|
||||
Patch13: xinetd-2.3.14-tcpmux.patch
|
||||
# When service is destroyed, destroy also its
|
||||
# file descriptor in array given to poll function
|
||||
Patch14: xinetd-2.3.14-clean-pfd.patch
|
||||
# xinetd confuses ipv6 and ipv4 port parsing
|
||||
# - furtunately, they have the same format, so everything
|
||||
# works even without this patch
|
||||
Patch15: xinetd-2.3.14-ipv6confusion.patch
|
||||
# This fixes bug #593904 - online reconfiguration caused log message
|
||||
# flood when turning off UDP service
|
||||
Patch16: xinetd-2.3.14-udp-reconfig.patch
|
||||
Patch17: xinetd-2.3.13-log-crash.patch
|
||||
Patch18: xinetd-2.3.14-rpc-specific-port.patch
|
||||
Patch19: xinetd-2.3.14-signal-log-hang.patch
|
||||
Patch20: xinetd-2.3.14-fix-type-punned-ptr.patch
|
||||
|
||||
BuildRequires: autoconf, automake
|
||||
BuildRequires: libselinux-devel >= 1.30
|
||||
|
|
@ -64,6 +84,13 @@ located in the /etc/xinetd.d directory.
|
|||
%patch11 -p1 -b .poll
|
||||
%patch12 -p1 -b .file-limit
|
||||
%patch13 -p1 -b .tcpmux
|
||||
%patch14 -p1 -b .clean-pfd
|
||||
%patch15 -p1 -b .ipv6confusion
|
||||
%patch16 -p1 -b .udp-reconfig
|
||||
%patch17 -p1 -b .log-crash
|
||||
%patch18 -p1 -b .rpc-specific-port
|
||||
%patch19 -p1 -b .signal-log-hang
|
||||
%patch20 -p1 -b .fix-type-punned-ptr
|
||||
|
||||
aclocal
|
||||
autoconf
|
||||
|
|
@ -123,6 +150,30 @@ fi
|
|||
%{_mandir}/*/*
|
||||
|
||||
%changelog
|
||||
* Thu Apr 21 2011 Vojtech Vitek (V-Teq) <vvitek@redhat.com> - 2:2.3.14-34
|
||||
- Fix build warning about "dereferencing type-punned pointer"
|
||||
Related: #695674
|
||||
- Avoid possible hang while logging an unexpected signal
|
||||
Related: #501604
|
||||
- Let RPC services bind to a specific port
|
||||
Related: #624800
|
||||
|
||||
* Fri Feb 18 2011 Vojtech Vitek (V-Teq) <vvitek@redhat.com> - 2:2.3.14-33
|
||||
- fix crash when application's logfile hit size limit
|
||||
Related: #244063
|
||||
|
||||
* Wed Jun 02 2010 Jan Zeleny <jzeleny@redhat.com> - 2:2.3.14-32
|
||||
- fixed log message flooding when turning off UDP service during online
|
||||
reconfiguration (#593904)
|
||||
|
||||
* Fri Mar 19 2010 Jan Zeleny <jzeleny@redhat.com> - 2:2.3.14-31
|
||||
- corrected port parsing code (IPv4 and IPv6 were switched)
|
||||
- commented patches I'm familiar with in spec file
|
||||
|
||||
* Fri Mar 19 2010 Jan Zeleny <jzeleny@redhat.com> - 2:2.3.14-30
|
||||
- fixed flooding log with error messages when disabled service at runtime
|
||||
- updated release number to 30 to prevent rpm from detecting this as downgrade
|
||||
|
||||
* Thu Jan 21 2010 Jan Zeleny <jzeleny@redhat.com> - 2:2.3.14-28
|
||||
- fixed issue with tcpmux service (#543968)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue