Red Hat Bugzilla – Bug 120875
getent returns incorrect service names in some cases
Last modified: 2007-11-30 17:07:01 EST
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):
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:
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
getent services 20012/tcp returns
getent services 11342/tcp returns
getent services 11342/tcp should return
and getent services 20012/tcp should return
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.
The patch is incorrect.
"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.
*** Bug 120878 has been marked as a duplicate of this bug. ***
I'm assuming this is fixed in glibc-2.2.4-32.15 and glibc-2.3.2-95.20.
If not, please reopen.