Bug 120875 - getent returns incorrect service names in some cases
Summary: getent returns incorrect service names in some cases
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 3
Classification: Red Hat
Component: glibc
Version: 3.0
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Jakub Jelinek
QA Contact: Brian Brock
URL:
Whiteboard:
: 120878 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2004-04-14 19:45 UTC by Neil Horman
Modified: 2007-11-30 22:07 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2004-05-12 10:23:02 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
patch to correct byte swapping behavior (382 bytes, patch)
2004-04-14 19:47 UTC, Neil Horman
no flags Details | Diff

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.


Note You need to log in before you can comment on or make changes to this bug.