Page MenuHomeFreeBSD

Fix infinite loops in yplib.c
ClosedPublic

Authored by pushkarbk_gmail.com on Nov 6 2015, 12:20 PM.
Tags
None
Referenced Files
F103987058: D4095.diff
Mon, Dec 2, 1:41 AM
Unknown Object (File)
Tue, Nov 19, 1:42 PM
Unknown Object (File)
Tue, Nov 12, 2:07 PM
Unknown Object (File)
Oct 21 2024, 9:47 AM
Unknown Object (File)
Oct 13 2024, 12:11 PM
Unknown Object (File)
Oct 13 2024, 12:10 PM
Unknown Object (File)
Oct 13 2024, 12:10 PM
Unknown Object (File)
Oct 13 2024, 12:06 PM
Subscribers
None

Details

Summary

Configuring NIS server to use longer entries, creates an infinite retry loop for a NIS request.
A ypmatch call will return the following error until the command is killed:

  • yp_match: clnt_call: RPC: Can't decode result ***
Test Plan

  • Before Fix * ***

ypmatch sss_group1910 group

yp_match: clnt_call: RPC: Can't decode result
yp_match: clnt_call: RPC: Can't decode result
yp_match: clnt_call: RPC: Can't decode result
yp_match: clnt_call: RPC: Can't decode result
yp_match: clnt_call: RPC: Can't decode result
yp_match: clnt_call: RPC: Can't decode result
.
.
.
. * Infinite Loop *
.
.
.
yp_match: clnt_call: RPC: Can't decode result
yp_match: clnt_call: RPC: Can't decode result
yp_match: clnt_call: RPC: Can't decode result

After CTRL+C

yp_match: clnt^Catch: clnt_call: RPC: Can't decode result


  • After Fix * ******

ypmatch sss_group1910 group

yp_match: clnt_call: RPC: Can't decode result
yp_match: clnt_call: RPC: Can't decode result
.
.
.
. * After 20 retries *
.
.
ypmatch: can't match key sss_group1910 in map group.byname. reason: RPC failure

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

pushkarbk_gmail.com retitled this revision from to Fix infinite loops in yplib.c.
pushkarbk_gmail.com updated this object.
pushkarbk_gmail.com edited the test plan for this revision. (Show Details)
lib/libc/yp/yplib.c
983 ↗(On Diff #9988)

Pushkar and I talked about this internally, but noting it here for the record - the reason the first arg to cln_perror() was changed was to match the first arg of the clnt_call() which failed.

araujo edited edge metadata.

Thanks to work on it!
Looks good to me.

This revision is now accepted and ready to land.Nov 19 2015, 8:56 AM
bapt added a reviewer: bapt.