Newsgroups: comp.sources.unix From: panos@cs.colorado.edu (Panos Tsirigotis) Subject: v27i087: xinetd-2.1.1 - inetd replacement with access control and logging, Patch02 Sender: unix-sources-moderator@gw.home.vix.com Approved: vixie@gw.home.vix.com Submitted-By: panos@cs.colorado.edu (Panos Tsirigotis) Posting-Number: Volume 27, Issue 87 Archive-Name: xinetd-2.1.1/patch02 Here is Patch02 for xinetd (which appeared in volume26 of comp.sources.unix). Panos ______________________________________________________________________ 1. What this patch fixes only_from/no_access addresses would get inverted on little-endian machines when such addresses were specified using the numeric notation (for example, 128.138.45.3 would become 3.45.138.128). This bug was in the numeric_addr function which did not convert the result of inet_addr to host-byte-order. A work around for the bug would be to use the factorized address notation (for example, 128.138.45.{3}) 2. How to apply this patch Cd to the xinetd directory and use the command: patch < "name of this file" This patch will modify the files Makefile CHANGELOG addr.c The VERSION variable in the Makefile will be changed to 2.1.3. You will need to recompile xinetd after applying this patch. The accompanying libraries are *not* affected by this patch. Prereq: 2.1.2 *** /tmp/rt/xinetd/Makefile Tue Nov 9 18:47:48 1993 --- Makefile Tue Nov 9 19:16:48 1993 *************** *** 21,31 **** # checkout --> checkout all files # - # - # The following variables must be set by you - # NAME = xinetd ! VERSION = 2.1.2 # # Possible flags that can be defined in DEFS: --- 21,28 ---- # checkout --> checkout all files # NAME = xinetd ! VERSION = 2.1.3 # # Possible flags that can be defined in DEFS: *** /tmp/rt/xinetd/CHANGELOG Tue Nov 9 18:47:48 1993 --- CHANGELOG Tue Nov 9 18:56:15 1993 *************** *** 87,89 **** --- 87,98 ---- of the fcntl() call would be harmless if 'fd' happened to refer to an open descriptor). + 2.1.3: + Bug fix: + only_from/no_access addresses would get inverted on little-endian + machines when such addresses were specified using the numeric notation + (for example, 128.138.45.3). This bug was in the numeric_addr function + which did not convert the result of inet_addr to host-byte-order. + A work around for the bug would be to use the factorized address + notation (for example, 128.138.45.{3}) + *** /tmp/rt/xinetd/addr.c Tue Nov 9 18:45:00 1993 --- addr.c Tue Nov 9 18:51:50 1993 *************** *** 250,256 **** register unsigned long mask ; struct comp_addr ca ; ! addr = inet_addr( str_addr ) ; if ( addr == (unsigned long) -1 ) return( CANT_PARSE ) ; --- 250,256 ---- register unsigned long mask ; struct comp_addr ca ; ! addr = ntohl( inet_addr( str_addr ) ) ; if ( addr == (unsigned long) -1 ) return( CANT_PARSE ) ;