Bug 120875

Summary: getent returns incorrect service names in some cases
Product: Red Hat Enterprise Linux 3 Reporter: Neil Horman <nhorman>
Component: glibcAssignee: Jakub Jelinek <jakub>
Status: CLOSED ERRATA QA Contact: Brian Brock <bbrock>
Severity: medium Docs Contact:
Priority: medium    
Version: 3.0CC: tao
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2004-05-12 10:23:02 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
patch to correct byte swapping behavior none

Description Neil Horman 2004-04-14 19:45:11 UTC
Description of problem:
When operating over nis, if two services are configured which have
canonically byte swapped port number, getent will return the name of
the incorrect service

Version-Release number of selected component (if applicable):


How reproducible:
always

Steps to Reproduce:
1.configure an NIS server and NIS client
2.export the services file over NIS and make sure the client looks
services up there
3.add two services to the services file, make the entry as follows:
servicea 11342/tcp
serviceb 20012/tcp
4.issue ypcat services on the client and confirm that the services
added in (3) above can be seen (note that htons(11342)=20012
5.on the client issue the commmands: 
getent services 11342/tcp 
getent services 20012/tcp
  
Actual results:
getent services 20012/tcp returns
servicea                 11342/tcp
and 
getent services 11342/tcp returns
serviceb        20012/tcp


Expected results:
getent services 11342/tcp should return
servicea                 11342/tcp
and getent services 20012/tcp should return
serviceb                 20012/tcp

Additional info:

Comment 1 Neil Horman 2004-04-14 19:47:24 UTC
Created attachment 99424 [details]
patch to correct byte swapping behavior

This patch removes the (ostensibly incorrect) htons call from the getent
application and allows services to be returned correctly.

Comment 2 Jakub Jelinek 2004-04-14 19:51:18 UTC
The patch is incorrect.
http://www.opengroup.org/onlinepubs/007904975/functions/getservbyport.html
"The port argument shall be in network byte order."

There used to be a bug in _nss_nis_getservbyport_r which did not use
ntohs (), but this is fixed in the current U2/U4 glibc candidates.
See ftp://people.redhat.com/jakub/glibc/errata/

Comment 3 Jakub Jelinek 2004-04-15 07:11:56 UTC
*** Bug 120878 has been marked as a duplicate of this bug. ***

Comment 4 Jakub Jelinek 2004-05-12 10:23:02 UTC
I'm assuming this is fixed in glibc-2.2.4-32.15 and glibc-2.3.2-95.20.
If not, please reopen.