Bug 988203

Summary: NIS server returning 0 (YP_FALSE) instead of -1 (YP_NOMAP) for yp_first/yp_next requests
Product: Red Hat Enterprise Linux 6 Reporter: Honza Horak <hhorak>
Component: ypservAssignee: Matej Mužila <mmuzila>
Status: CLOSED ERRATA QA Contact: Tomas Dolezal <todoleza>
Severity: medium Docs Contact: Jiri Herrmann <jherrman>
Priority: medium    
Version: 6.5CC: bret.sanders, jherrman, psklenar, rupatel, todoleza
Target Milestone: rcKeywords: Patch
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: ypserv-2.19-31.el6 Doc Type: Bug Fix
Doc Text:
*ypserv* now correctly reports a non-existent map The *ypserv* service previously incorrectly returned an `Internal NIS error` error message when a NIS client asked for a non-existent map using the *yp_first* or *yp_next* system calls. Now, *ypserv* correctly returns the `No such map in server's domain` error message in this scenario.
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-05-10 20:34:02 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1075802, 1172231, 1269927    
Attachments:
Description Flags
Reproducer for yp_first and yp_next RPC calls
none
Patch that uses correct error handling none

Description Honza Horak 2013-07-25 05:49:33 UTC
Description of problem:
This is similar to bug #790812, which got incomplete fix. When NIS client asks for non-existing map using yp_first/yp_next RPC calls, it gets 0 (YP_FALSE) instead of -1 (YP_NOMAP) in the YP respond from server, which causes problems on Solaris/Linux deployments.

We need to fix *all* calls the same as yp_all RPC call has been fixed as a part of bug #790812.

Version-Release number of selected component (if applicable):
ypserv-2.19-10.el5_9.1

How reproducible:
every-time

Steps to Reproduce:
1. See https://bugzilla.redhat.com/show_bug.cgi?id=783198#c3
and configure NIS according the steps there.
2. Download reproducer.c (will be attached)
3. gcc -o reproducer reproducer.c -lnsl 
4. ./reproducer yourdomainname nonexistingmap
5. echo $?

Actual results:
WARNING: Internal NIS error (Map nonexistingmap)
6

Expected results:
WARNING: No such map in server's domain (Map nonexistingmap)
4

Comment 1 Honza Horak 2013-07-25 05:52:33 UTC
Created attachment 778065 [details]
Reproducer for yp_first and yp_next RPC calls

See comment #0 for instructions how the reproducer should be used.

Comment 2 Honza Horak 2013-07-25 05:54:37 UTC
Created attachment 778066 [details]
Patch that uses correct error handling

This patch is a back-port of error handling from ypserv-2.29.

Comment 12 errata-xmlrpc 2016-05-10 20:34:02 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHBA-2016-0793.html