Hello community,

here is the log from the commit of package xinetd for openSUSE:Leap:15.2 
checked in at 2020-02-24 11:50:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2/xinetd (Old)
 and      /work/SRC/openSUSE:Leap:15.2/.xinetd.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "xinetd"

Mon Feb 24 11:50:13 2020 rev:19 rq:777368 version:2.3.15.4

Changes:
--------
--- /work/SRC/openSUSE:Leap:15.2/xinetd/xinetd.changes  2020-01-15 
16:30:45.872832576 +0100
+++ /work/SRC/openSUSE:Leap:15.2/.xinetd.new.26092/xinetd.changes       
2020-02-24 11:50:14.626722977 +0100
@@ -1,0 +2,7 @@
+Thu Aug  2 10:24:30 UTC 2018 - tchva...@suse.com
+
+- Update to 2.3.15.4:
+  * Small buildfixes from gentoo
+  * Various tiny tweaks from pullrequests
+
+-------------------------------------------------------------------

Old:
----
  xinetd-2.3.15.3.tar.xz

New:
----
  xinetd-2.3.15.4.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ xinetd.spec ++++++
--- /var/tmp/diff_new_pack.KO5TG6/_old  2020-02-24 11:50:15.046723850 +0100
+++ /var/tmp/diff_new_pack.KO5TG6/_new  2020-02-24 11:50:15.046723850 +0100
@@ -20,14 +20,13 @@
 %if ! %{defined _fillupdir}
   %define _fillupdir /var/adm/fillup-templates
 %endif
-
 Name:           xinetd
-Version:        2.3.15.3
+Version:        2.3.15.4
 Release:        0
 Summary:        An 'inetd' with Expanded Functionality
 License:        xinetd
 Group:          Productivity/Networking/System
-Url:            https://github.com/openSUSE/xinetd/
+URL:            https://github.com/openSUSE/xinetd/
 Source0:        
https://github.com/openSUSE/xinetd/releases/download/%{version}/%{name}-%{version}.tar.xz
 Source1:        README.SUSE
 Source2:        logrotate

++++++ xinetd-2.3.15.3.tar.xz -> xinetd-2.3.15.4.tar.xz ++++++
++++ 4734 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xinetd-2.3.15.3/README.md new/xinetd-2.3.15.4/README.md
--- old/xinetd-2.3.15.3/README.md       2017-04-25 13:43:27.000000000 +0200
+++ new/xinetd-2.3.15.4/README.md       2018-06-20 17:23:47.000000000 +0200
@@ -1,7 +1,6 @@
 # xinetd #
 
 [![Build 
Status](https://travis-ci.org/openSUSE/xinetd.svg?branch=master)](https://travis-ci.org/openSUSE/xinetd)
-[![Coverity Scan 
Build](https://scan.coverity.com/projects/opensuse-xinetd/badge.svg)](https://scan.coverity.com/projects/opensuse-xinetd)
 
 xinetd is a powerful replacement for inetd.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xinetd-2.3.15.3/compile new/xinetd-2.3.15.4/compile
--- old/xinetd-2.3.15.3/compile 2017-04-21 12:13:59.000000000 +0200
+++ new/xinetd-2.3.15.4/compile 2018-06-20 17:34:19.000000000 +0200
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Wrapper for compilers which do not understand '-c -o'.
 
-scriptversion=2012-10-14.11; # UTC
+scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Copyright (C) 1999-2018 Free Software Foundation, Inc.
 # Written by Tom Tromey <tro...@cygnus.com>.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -17,7 +17,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+# along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -255,7 +255,8 @@
     echo "compile $scriptversion"
     exit $?
     ;;
-  cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
+  cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
+  icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
     func_cl_wrapper "$@"      # Doesn't return...
     ;;
 esac
@@ -339,9 +340,9 @@
 # Local Variables:
 # mode: shell-script
 # sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
 # time-stamp-end: "; # UTC"
 # End:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xinetd-2.3.15.3/config.h.in new/xinetd-2.3.15.4/config.h.in
--- old/xinetd-2.3.15.3/config.h.in     2017-08-31 10:53:48.000000000 +0200
+++ new/xinetd-2.3.15.4/config.h.in     2018-06-20 17:34:19.000000000 +0200
@@ -60,6 +60,9 @@
 /* Define to the sub-directory where libtool stores uninstalled libraries. */
 #undef LT_OBJDIR
 
+/* Omit RPC support. */
+#undef NO_RPC
+
 /* Name of package */
 #undef PACKAGE
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xinetd-2.3.15.3/configure.ac new/xinetd-2.3.15.4/configure.ac
--- old/xinetd-2.3.15.3/configure.ac    2017-08-31 10:53:40.000000000 +0200
+++ new/xinetd-2.3.15.4/configure.ac    2018-06-20 17:33:48.000000000 +0200
@@ -8,7 +8,7 @@
 m4_define([xinetd_version_major],[2])
 m4_define([xinetd_version_minor],[3])
 m4_define([xinetd_version_micro],[15])
-m4_define([xinetd_version_nano],[3])
+m4_define([xinetd_version_nano],[4])
 
m4_define([xinetd_version],[xinetd_version_major.xinetd_version_minor.xinetd_version_micro.xinetd_version_nano])
 
 # =============
@@ -32,16 +32,11 @@
 AC_PROG_LIBTOOL
 PKG_PROG_PKG_CONFIG([0.20])
 AC_CHECK_LIB([m], [log10], [
-       LIBM_LIBS="-lm"
+    LIBM_LIBS="-lm"
 ], [
-       AC_MSG_ERROR([Unable to find working libm.so])
+    AC_MSG_ERROR([Unable to find working libm.so])
 ])
 AC_SUBST([LIBM_LIBS])
-PKG_CHECK_MODULES([TIRPC],[libtirpc], [
-       AC_DEFINE([HAVE_RPCENT_H], [1], [Have <rpc/rpcent.h>.])
-], [
-       AC_MSG_WARN([Libtirpc not found, will not use <rpc/rpcent.h>])
-])
 
 # ======================================
 # Check for various headers and settings
@@ -54,21 +49,21 @@
 # Switch
 # ======
 AC_ARG_ENABLE(debug,
-       AS_HELP_STRING([--enable-debug], [Build with debug symbols.]),
-       [enable_debug="$enableval"],
-       [enable_debug=no]
+    AS_HELP_STRING([--enable-debug], [Build with debug symbols.]),
+    [enable_debug="$enableval"],
+    [enable_debug=no]
 )
 AS_IF([test "x$enable_debug" != "xno"], [
-       CFLAGS="$CFLAGS -ggdb"
+    CFLAGS="$CFLAGS -ggdb"
 ])
 
 AC_ARG_ENABLE([werror],
-       [AS_HELP_STRING([--enable-werror], [Treat all warnings as errors, 
useful for development])],
-       [enable_werror="$enableval"],
-       [enable_werror=no]
+    [AS_HELP_STRING([--enable-werror], [Treat all warnings as errors, useful 
for development])],
+    [enable_werror="$enableval"],
+    [enable_werror=no]
 )
 AS_IF([test x"$enable_werror" != "xno"], [
-       CFLAGS="$CFLAGS -Werror"
+    CFLAGS="$CFLAGS -Werror"
 ])
 CFLAGS="$CFLAGS -Wall -Wextra"
 
@@ -84,28 +79,60 @@
 AC_ARG_WITH([libwrap],
     [AS_HELP_STRING([--without-libwrap], [Do not use libwrap tcp_wrappers 
support])],
     [with_libwrap="$withval"],
-    [with_libwrap=yes]
+    [with_libwrap=auto]
 )
 AS_IF([test x"$with_libwrap" != "xno"], [
     AC_CHECK_LIB(wrap, request_init, [
         AC_DEFINE([LIBWRAP], [1], [Have libwrap TCP wrappers present])
         WRAP_LIBS="-lwrap"
+        AC_CHECK_LIB(nsl, yp_get_default_domain, [WRAP_LIBS="$WRAP_LIBS -lnsl" 
])
+        AC_SUBST([WRAP_LIBS])
     ],[
-        AC_MSG_ERROR([Missing libwrap from tcp_wrappers])
+        AS_IF([test x"$with_labeled_networking" = "xyes"], [
+            AC_MSG_ERROR([Missing libwrap from tcp_wrappers])
+        ], [
+            with_libwrap="no"
+            AC_MSG_WARN([Not using libwrap from tcp_wrappers])
+        ])
     ])
-    AC_CHECK_LIB(nsl, yp_get_default_domain, [WRAP_LIBS="$WRAP_LIBS -lnsl" ])
-    AC_SUBST([WRAP_LIBS])
 ])
 
 AC_ARG_WITH([labeled-networking],
     [AS_HELP_STRING([--without-labeled-networking], [Do not use selinux for 
labeled networking])],
     [with_labeled_networking="$withval"],
-    [with_labeled_networking=yes]
+    [with_labeled_networking="auto"]
 )
 AS_IF([test x"$with_labeled_networking" != "xno"], [
     PKG_CHECK_MODULES([SELINUX],[libselinux], [
         AC_DEFINE([LABELED_NET], [1], [Use selinux for network labeling])
-    ],[])
+    ],[
+        AS_IF([test x"$with_labeled_networking" = "xyes"], [
+            AC_MSG_ERROR([selinux support requested but not found])
+        ], [
+            with_labeled_networking="no"
+            AC_MSG_WARN([selinux support will not be built in])
+        ])
+    ])
+])
+
+AC_ARG_WITH([rpc],
+    [AS_HELP_STRING([--without-rpc], [Do not include RPC support])],
+    [with_rpc="$withval"],
+    [with_rpc="auto"]
+)
+AS_IF([test x"$with_rpc" != "xno"], [
+    PKG_CHECK_MODULES([TIRPC],[libtirpc], [
+        AC_DEFINE([HAVE_RPCENT_H], [1], [Have <rpc/rpcent.h>.])
+    ], [
+        AS_IF([test x"$with_rpc" = "xyes"], [
+            AC_MSG_ERROR([RPC support requested but not found])
+        ])
+        with_rpc="no"
+        AC_MSG_WARN([Libtirpc not found, will not use <rpc/rpcent.h>])
+    ])
+])
+AS_IF([test x"$with_rpc" = "xno"], [
+    AC_DEFINE([NO_RPC], [1], [Omit RPC support.])
 ])
 
 # =========
@@ -171,12 +198,13 @@
 AC_MSG_NOTICE([
 ==============================================================================
 Build configuration:
-       debug:              ${enable_debug}
-       werror:             ${enable_werror}
-       labeled-networking: ${with_labeled_networking}
-       libwrap:            ${with_libwrap}
-       loadavg:            ${with_loadavg}
-       HARDEN_CFLAGS:      ${HARDEN_CFLAGS}
-       HARDEN_LDFLAGS:     ${HARDEN_LDFLAGS}
+    debug:              ${enable_debug}
+    werror:             ${enable_werror}
+    labeled-networking: ${with_labeled_networking}
+    libwrap:            ${with_libwrap}
+    loadavg:            ${with_loadavg}
+    rpc:                ${with_rpc}
+    HARDEN_CFLAGS:      ${HARDEN_CFLAGS}
+    HARDEN_LDFLAGS:     ${HARDEN_LDFLAGS}
 ==============================================================================
 ])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xinetd-2.3.15.3/man/xinetd.conf.5 new/xinetd-2.3.15.4/man/xinetd.conf.5
--- old/xinetd-2.3.15.3/man/xinetd.conf.5       2017-08-31 10:44:29.000000000 
+0200
+++ new/xinetd-2.3.15.4/man/xinetd.conf.5       2018-06-20 17:08:14.000000000 
+0200
@@ -152,9 +152,14 @@
 The REUSE flag is deprecated.  All services now implicitly use the REUSE flag.
 .RE
 .TP
+.B v6only
+This is boolean "yes" or "no".  This will result in a service accepting
+only IPv6 connections, instead of both IPv6 and IPv4 connections.  The
+default is determined by the "bindv6only" kernel variable.
+.TP
 .B disable
 This is boolean "yes" or "no".  This will result in the service
-being disabled and not starting.  See the DISABLE flag description.
+being disabled and not starting.
 .RE
 .TP
 .B socket_type
@@ -539,7 +544,7 @@
 disabled.  If you have 2 ftp services, you will need to list both of
 their ID's and not just ftp. (ftp is the service name, not the ID. It
 might accidentally be the ID, but you better check.) Note that the
-service "disable" attribute and "DISABLE" flag can prevent a service
+service "disable" attribute can prevent a service
 from being enabled despite being listed in this attribute.
 .TP
 .B include
@@ -877,7 +882,7 @@
 
 .\" *********************** NOTES ****************************
 .SH NOTES
-.IP 1. 4
+.IP 1. 6
 The following service attributes \fIcannot\fP be changed on reconfiguration:
 .B socket_type,
 .B wait,
@@ -892,6 +897,10 @@
 the address check is considered successful (i.e. access will not be
 denied).
 .IP 3.
+The maximum line length of the configuration file is limited to 16 KiB
+(it might be less on systems without mmap, the length limit is two times the
+optimal I/O blocksize then).
+.IP 4.
 The address check is based on the IP address of the remote host and
 not on its domain address. We do this so that we can avoid
 remote name lookups which may take a long time (since
@@ -906,7 +915,7 @@
 new host IP address is among those allowed access. For example, if
 the IP address of a host changes from 1.2.3.4 to 1.2.3.5 and
 only_from is specified as 1.2.3.0 then access will not be denied.
-.IP 4.
+.IP 5.
 If the
 .B USERID
 log option is specified and the remote host either does not run an
@@ -914,7 +923,7 @@
 access will not be denied unless the
 .I IDONLY
 service flag is used.
-.IP 5.
+.IP 6.
 Interception works by forking a process which acts as a filter
 between the remote host(s) and the local server.
 This obviously has a performance impact so
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xinetd-2.3.15.3/missing new/xinetd-2.3.15.4/missing
--- old/xinetd-2.3.15.3/missing 2017-04-21 12:13:59.000000000 +0200
+++ new/xinetd-2.3.15.4/missing 2018-06-20 17:34:19.000000000 +0200
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Common wrapper for a few potentially missing GNU programs.
 
-scriptversion=2013-10-28.13; # UTC
+scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
 # Originally written by Fran,cois Pinard <pin...@iro.umontreal.ca>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
@@ -17,7 +17,7 @@
 # GNU General Public License for more details.
 
 # You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+# along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -101,9 +101,9 @@
   exit $st
 fi
 
-perl_URL=http://www.perl.org/
-flex_URL=http://flex.sourceforge.net/
-gnu_software_URL=http://www.gnu.org/software
+perl_URL=https://www.perl.org/
+flex_URL=https://github.com/westes/flex
+gnu_software_URL=https://www.gnu.org/software
 
 program_details ()
 {
@@ -207,9 +207,9 @@
 exit $st
 
 # Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
 # time-stamp-end: "; # UTC"
 # End:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xinetd-2.3.15.3/src/access.c new/xinetd-2.3.15.4/src/access.c
--- old/xinetd-2.3.15.3/src/access.c    2017-04-20 22:13:48.000000000 +0200
+++ new/xinetd-2.3.15.4/src/access.c    2018-06-22 10:11:29.000000000 +0200
@@ -124,8 +124,9 @@
    bool_int   of_matched  = FALSE;
    bool_int   na_matched  = FALSE;
 
+   /* The IP address is unknown. Nothing to reject, so accept it. */
    if (sinp == NULL )
-      return FAILED;
+      return OK;
 
    if ( SC_SENSOR( SVC_CONF(sp) ))
    {   /* They hit a sensor...return FAILED since this isn't a real service */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xinetd-2.3.15.3/src/child.c new/xinetd-2.3.15.4/src/child.c
--- old/xinetd-2.3.15.3/src/child.c     2017-04-20 17:58:45.000000000 +0200
+++ new/xinetd-2.3.15.4/src/child.c     2018-06-22 10:11:29.000000000 +0200
@@ -311,11 +311,6 @@
    signals_pending[0] = -1;
    signals_pending[1] = -1;
 
-   Sclose(0);
-   Sclose(1);
-   Sclose(2);
-
-
 #ifdef DEBUG_SERVER
    if ( debug.on )
    {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xinetd-2.3.15.3/src/confparse.c new/xinetd-2.3.15.4/src/confparse.c
--- old/xinetd-2.3.15.3/src/confparse.c 2017-05-04 12:52:51.000000000 +0200
+++ new/xinetd-2.3.15.4/src/confparse.c 2018-06-20 17:09:43.000000000 +0200
@@ -13,10 +13,12 @@
 #include <stdlib.h>
 #include <fcntl.h>
 #include <unistd.h>
+#ifndef NO_RPC
 #include <rpc/rpc.h>
 #ifdef HAVE_RPCENT_H
 #include <rpc/rpcent.h>
 #endif
+#endif
 #include <netdb.h>
 
 #include "str.h"
@@ -730,7 +732,7 @@
           }
    }
 
-/* #ifndef NO_RPC */
+#ifndef NO_RPC
    if ( SC_IS_RPC( scp ) && !SC_IS_UNLISTED( scp ) )
    {
       struct rpcent *rep = (struct rpcent *)getrpcbyname( SC_NAME(scp) ) ;
@@ -743,6 +745,7 @@
       SC_RPCDATA( scp )->rd_program_number = rep->r_number ;
    }
    else
+#endif
    {
        if ( !SC_IS_UNLISTED( scp ) ) 
        { 
@@ -843,6 +846,14 @@
       }
    }
 
+   if ( SC_SOCKET_TYPE(scp) == SOCK_DGRAM && !SC_WAITS(scp) )
+   {
+         msg( LOG_ERR, func,
+              "Service %s has socket_type dgram, but does not wait",
+              SC_NAME(scp) );
+         return FAILED;
+   }
+
    if ( service_attr_check( scp ) == FAILED )
       return( FAILED ) ;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xinetd-2.3.15.3/src/connection.c new/xinetd-2.3.15.4/src/connection.c
--- old/xinetd-2.3.15.3/src/connection.c        2017-04-20 17:58:45.000000000 
+0200
+++ new/xinetd-2.3.15.4/src/connection.c        2018-06-22 10:11:29.000000000 
+0200
@@ -53,17 +53,16 @@
       } else {
          cp->co_descriptor = accept( SVC_FD( sp ), &(cp->co_remote_address.sa),
                                      &sin_len ) ;
-        if (cp->co_descriptor != -1)
-             M_SET( cp->co_flags, COF_NEW_DESCRIPTOR ) ;
-      }
-
-      if ( cp->co_descriptor == -1 )
-      {
-        if ((errno == EMFILE) || (errno == ENFILE))
-            cps_service_stop(sp, "no available descriptors");
-        else
-             msg( LOG_ERR, func, "service %s, accept: %m", SVC_ID( sp ) ) ;
-         return( FAILED ) ;
+         if ( cp->co_descriptor == -1 )
+         {
+           if ((errno == EMFILE) || (errno == ENFILE))
+               cps_service_stop(sp, "no available descriptors");
+           else
+                msg( LOG_ERR, func, "service %s, accept: %m", SVC_ID( sp ) ) ;
+            return( FAILED ) ;
+         }
+         M_SET( cp->co_flags, COF_NEW_DESCRIPTOR ) ;
+         M_SET( cp->co_flags, COF_HAVE_ADDRESS ) ;
       }
 
       if( SC_NODELAY( scp ) && (SC_PROTOVAL( scp ) == IPPROTO_TCP) )
@@ -88,8 +87,6 @@
             if( debug.on ) msg( LOG_WARNING, func, "service %s, IPV6_ADDRFORM 
setsockopt() failed: %m", SVC_ID( sp) );
          }
       }
-
-      M_SET( cp->co_flags, COF_HAVE_ADDRESS ) ;
    }
    else
    {
@@ -210,7 +207,7 @@
 
    if( getnameinfo( &cp->co_remote_address.sa, len,
          name, NI_MAXHOST, NULL, 0, NI_NUMERICHOST ) ) {
-      return "<no address>";
+      return "<invalid address>";
    }
    return name;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xinetd-2.3.15.3/src/main.c new/xinetd-2.3.15.4/src/main.c
--- old/xinetd-2.3.15.3/src/main.c      2017-04-21 09:40:05.000000000 +0200
+++ new/xinetd-2.3.15.4/src/main.c      2018-06-20 17:09:43.000000000 +0200
@@ -269,6 +269,7 @@
                               SVC_ID( sp ) ) ;
                svc_deactivate( sp ) ;
                found = TRUE ;
+               bad_fd_count++ ;
                break ;
             }
          }
@@ -276,6 +277,7 @@
          {
 #ifdef HAVE_POLL
             ps.rws.pfd_array[fd].events = 0;
+            ps.rws.pfd_array[fd].fd = -1;
 #else
             FD_CLR( fd, &ps.rws.socket_mask ) ;
 #endif


Reply via email to