History log of /freebsd-10.1-release/lib/libc/yp/
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
293894 14-Jan-2016 glebius

o Fix invalid TCP checksums with pf(4). [EN-16:02.pf]
o Fix YP/NIS client library critical bug. [EN-16:03.yplib]
o Fix SCTP ICMPv6 error message vulnerability. [SA-16:01.sctp]
o Fix ntp panic threshold bypass vulnerability. [SA-16:02.ntp]
o Fix Linux compatibility layer incorrect futex handling. [SA-16:03.linux]
o Fix Linux compatibility layer setgroups(2) system call. [SA-16:04.linux]
o Fix TCP MD5 signature denial of service. [SA-16:05.tcp]
o Fix insecure default bsnmpd.conf permissions. [SA-16:06.bsnmpd]

Errata: FreeBSD-EN-16:02.pf
Errata: FreeBSD-EN-16:03.yplib
Security: FreeBSD-SA-16:01.sctp, CVE-2016-1879
Security: FreeBSD-SA-16:02.ntp, CVE-2015-5300
Security: FreeBSD-SA-16:03.linux, CVE-2016-1880
Security: FreeBSD-SA-16:04.linux, CVE-2016-1881
Security: FreeBSD-SA-16:05.tcp, CVE-2016-1882
Security: FreeBSD-SA-16:06.bsnmpd, CVE-2015-5677
Approved by: so


/freebsd-10.1-release/UPDATING
/freebsd-10.1-release/contrib/ntp/ChangeLog
/freebsd-10.1-release/contrib/ntp/CommitLog
/freebsd-10.1-release/contrib/ntp/NEWS
/freebsd-10.1-release/contrib/ntp/configure
/freebsd-10.1-release/contrib/ntp/html/miscopt.html
/freebsd-10.1-release/contrib/ntp/include/Makefile.am
/freebsd-10.1-release/contrib/ntp/include/Makefile.in
/freebsd-10.1-release/contrib/ntp/include/ntp_refclock.h
/freebsd-10.1-release/contrib/ntp/include/ntp_stdlib.h
/freebsd-10.1-release/contrib/ntp/include/ntp_worker.h
/freebsd-10.1-release/contrib/ntp/include/ntpd.h
/freebsd-10.1-release/contrib/ntp/include/safecast.h
/freebsd-10.1-release/contrib/ntp/lib/isc/backtrace.c
/freebsd-10.1-release/contrib/ntp/lib/isc/buffer.c
/freebsd-10.1-release/contrib/ntp/lib/isc/inet_aton.c
/freebsd-10.1-release/contrib/ntp/lib/isc/inet_pton.c
/freebsd-10.1-release/contrib/ntp/lib/isc/log.c
/freebsd-10.1-release/contrib/ntp/lib/isc/netaddr.c
/freebsd-10.1-release/contrib/ntp/lib/isc/sockaddr.c
/freebsd-10.1-release/contrib/ntp/lib/isc/task.c
/freebsd-10.1-release/contrib/ntp/lib/isc/win32/interfaceiter.c
/freebsd-10.1-release/contrib/ntp/lib/isc/win32/net.c
/freebsd-10.1-release/contrib/ntp/libntp/a_md5encrypt.c
/freebsd-10.1-release/contrib/ntp/libntp/atolfp.c
/freebsd-10.1-release/contrib/ntp/libntp/authkeys.c
/freebsd-10.1-release/contrib/ntp/libntp/authreadkeys.c
/freebsd-10.1-release/contrib/ntp/libntp/authusekey.c
/freebsd-10.1-release/contrib/ntp/libntp/dolfptoa.c
/freebsd-10.1-release/contrib/ntp/libntp/hextolfp.c
/freebsd-10.1-release/contrib/ntp/libntp/mstolfp.c
/freebsd-10.1-release/contrib/ntp/libntp/msyslog.c
/freebsd-10.1-release/contrib/ntp/libntp/ntp_crypto_rnd.c
/freebsd-10.1-release/contrib/ntp/libntp/ntp_lineedit.c
/freebsd-10.1-release/contrib/ntp/libntp/ntp_rfc2553.c
/freebsd-10.1-release/contrib/ntp/libntp/ntp_worker.c
/freebsd-10.1-release/contrib/ntp/libntp/snprintf.c
/freebsd-10.1-release/contrib/ntp/libntp/socktohost.c
/freebsd-10.1-release/contrib/ntp/libntp/systime.c
/freebsd-10.1-release/contrib/ntp/libntp/work_thread.c
/freebsd-10.1-release/contrib/ntp/libparse/clk_computime.c
/freebsd-10.1-release/contrib/ntp/libparse/clk_dcf7000.c
/freebsd-10.1-release/contrib/ntp/libparse/clk_hopf6021.c
/freebsd-10.1-release/contrib/ntp/libparse/clk_meinberg.c
/freebsd-10.1-release/contrib/ntp/libparse/clk_rawdcf.c
/freebsd-10.1-release/contrib/ntp/libparse/clk_rcc8000.c
/freebsd-10.1-release/contrib/ntp/libparse/clk_schmid.c
/freebsd-10.1-release/contrib/ntp/libparse/clk_trimtaip.c
/freebsd-10.1-release/contrib/ntp/libparse/clk_varitext.c
/freebsd-10.1-release/contrib/ntp/libparse/clk_wharton.c
/freebsd-10.1-release/contrib/ntp/libparse/parse.c
/freebsd-10.1-release/contrib/ntp/ntpd/invoke-ntp.conf.texi
/freebsd-10.1-release/contrib/ntp/ntpd/invoke-ntp.keys.texi
/freebsd-10.1-release/contrib/ntp/ntpd/invoke-ntpd.texi
/freebsd-10.1-release/contrib/ntp/ntpd/ntp.conf.5man
/freebsd-10.1-release/contrib/ntp/ntpd/ntp.conf.5mdoc
/freebsd-10.1-release/contrib/ntp/ntpd/ntp.conf.html
/freebsd-10.1-release/contrib/ntp/ntpd/ntp.conf.man.in
/freebsd-10.1-release/contrib/ntp/ntpd/ntp.conf.mdoc.in
/freebsd-10.1-release/contrib/ntp/ntpd/ntp.keys.5man
/freebsd-10.1-release/contrib/ntp/ntpd/ntp.keys.5mdoc
/freebsd-10.1-release/contrib/ntp/ntpd/ntp.keys.html
/freebsd-10.1-release/contrib/ntp/ntpd/ntp.keys.man.in
/freebsd-10.1-release/contrib/ntp/ntpd/ntp.keys.mdoc.in
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_control.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_crypto.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_io.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_loopfilter.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_parser.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_proto.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_refclock.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_request.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_restrict.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_signd.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_timer.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_util.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntpd-opts.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntpd-opts.h
/freebsd-10.1-release/contrib/ntp/ntpd/ntpd.1ntpdman
/freebsd-10.1-release/contrib/ntp/ntpd/ntpd.1ntpdmdoc
/freebsd-10.1-release/contrib/ntp/ntpd/ntpd.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntpd.html
/freebsd-10.1-release/contrib/ntp/ntpd/ntpd.man.in
/freebsd-10.1-release/contrib/ntp/ntpd/ntpd.mdoc.in
/freebsd-10.1-release/contrib/ntp/ntpd/refclock_local.c
/freebsd-10.1-release/contrib/ntp/ntpd/refclock_parse.c
/freebsd-10.1-release/contrib/ntp/ntpd/refclock_shm.c
/freebsd-10.1-release/contrib/ntp/ntpd/refclock_true.c
/freebsd-10.1-release/contrib/ntp/ntpd/refclock_tsyncpci.c
/freebsd-10.1-release/contrib/ntp/ntpdate/ntpdate.c
/freebsd-10.1-release/contrib/ntp/ntpdc/invoke-ntpdc.texi
/freebsd-10.1-release/contrib/ntp/ntpdc/ntpdc-opts.c
/freebsd-10.1-release/contrib/ntp/ntpdc/ntpdc-opts.h
/freebsd-10.1-release/contrib/ntp/ntpdc/ntpdc.1ntpdcman
/freebsd-10.1-release/contrib/ntp/ntpdc/ntpdc.1ntpdcmdoc
/freebsd-10.1-release/contrib/ntp/ntpdc/ntpdc.c
/freebsd-10.1-release/contrib/ntp/ntpdc/ntpdc.h
/freebsd-10.1-release/contrib/ntp/ntpdc/ntpdc.html
/freebsd-10.1-release/contrib/ntp/ntpdc/ntpdc.man.in
/freebsd-10.1-release/contrib/ntp/ntpdc/ntpdc.mdoc.in
/freebsd-10.1-release/contrib/ntp/ntpdc/ntpdc_ops.c
/freebsd-10.1-release/contrib/ntp/ntpq/invoke-ntpq.texi
/freebsd-10.1-release/contrib/ntp/ntpq/libntpq.c
/freebsd-10.1-release/contrib/ntp/ntpq/libntpq.h
/freebsd-10.1-release/contrib/ntp/ntpq/libntpq_subs.c
/freebsd-10.1-release/contrib/ntp/ntpq/ntpq-opts.c
/freebsd-10.1-release/contrib/ntp/ntpq/ntpq-opts.h
/freebsd-10.1-release/contrib/ntp/ntpq/ntpq-subs.c
/freebsd-10.1-release/contrib/ntp/ntpq/ntpq.1ntpqman
/freebsd-10.1-release/contrib/ntp/ntpq/ntpq.1ntpqmdoc
/freebsd-10.1-release/contrib/ntp/ntpq/ntpq.c
/freebsd-10.1-release/contrib/ntp/ntpq/ntpq.h
/freebsd-10.1-release/contrib/ntp/ntpq/ntpq.html
/freebsd-10.1-release/contrib/ntp/ntpq/ntpq.man.in
/freebsd-10.1-release/contrib/ntp/ntpq/ntpq.mdoc.in
/freebsd-10.1-release/contrib/ntp/ntpsnmpd/invoke-ntpsnmpd.texi
/freebsd-10.1-release/contrib/ntp/ntpsnmpd/ntpsnmpd-opts.c
/freebsd-10.1-release/contrib/ntp/ntpsnmpd/ntpsnmpd-opts.h
/freebsd-10.1-release/contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdman
/freebsd-10.1-release/contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc
/freebsd-10.1-release/contrib/ntp/ntpsnmpd/ntpsnmpd.html
/freebsd-10.1-release/contrib/ntp/ntpsnmpd/ntpsnmpd.man.in
/freebsd-10.1-release/contrib/ntp/ntpsnmpd/ntpsnmpd.mdoc.in
/freebsd-10.1-release/contrib/ntp/packageinfo.sh
/freebsd-10.1-release/contrib/ntp/scripts/calc_tickadj/Makefile.am
/freebsd-10.1-release/contrib/ntp/scripts/calc_tickadj/Makefile.in
/freebsd-10.1-release/contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjman
/freebsd-10.1-release/contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc
/freebsd-10.1-release/contrib/ntp/scripts/calc_tickadj/calc_tickadj.html
/freebsd-10.1-release/contrib/ntp/scripts/calc_tickadj/calc_tickadj.man.in
/freebsd-10.1-release/contrib/ntp/scripts/calc_tickadj/calc_tickadj.mdoc.in
/freebsd-10.1-release/contrib/ntp/scripts/calc_tickadj/invoke-calc_tickadj.texi
/freebsd-10.1-release/contrib/ntp/scripts/invoke-plot_summary.texi
/freebsd-10.1-release/contrib/ntp/scripts/invoke-summary.texi
/freebsd-10.1-release/contrib/ntp/scripts/ntp-wait/invoke-ntp-wait.texi
/freebsd-10.1-release/contrib/ntp/scripts/ntp-wait/ntp-wait-opts
/freebsd-10.1-release/contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitman
/freebsd-10.1-release/contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitmdoc
/freebsd-10.1-release/contrib/ntp/scripts/ntp-wait/ntp-wait.html
/freebsd-10.1-release/contrib/ntp/scripts/ntp-wait/ntp-wait.man.in
/freebsd-10.1-release/contrib/ntp/scripts/ntp-wait/ntp-wait.mdoc.in
/freebsd-10.1-release/contrib/ntp/scripts/ntpsweep/invoke-ntpsweep.texi
/freebsd-10.1-release/contrib/ntp/scripts/ntpsweep/ntpsweep-opts
/freebsd-10.1-release/contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepman
/freebsd-10.1-release/contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepmdoc
/freebsd-10.1-release/contrib/ntp/scripts/ntpsweep/ntpsweep.html
/freebsd-10.1-release/contrib/ntp/scripts/ntpsweep/ntpsweep.man.in
/freebsd-10.1-release/contrib/ntp/scripts/ntpsweep/ntpsweep.mdoc.in
/freebsd-10.1-release/contrib/ntp/scripts/ntptrace/invoke-ntptrace.texi
/freebsd-10.1-release/contrib/ntp/scripts/ntptrace/ntptrace-opts
/freebsd-10.1-release/contrib/ntp/scripts/ntptrace/ntptrace.1ntptraceman
/freebsd-10.1-release/contrib/ntp/scripts/ntptrace/ntptrace.1ntptracemdoc
/freebsd-10.1-release/contrib/ntp/scripts/ntptrace/ntptrace.html
/freebsd-10.1-release/contrib/ntp/scripts/ntptrace/ntptrace.man.in
/freebsd-10.1-release/contrib/ntp/scripts/ntptrace/ntptrace.mdoc.in
/freebsd-10.1-release/contrib/ntp/scripts/plot_summary-opts
/freebsd-10.1-release/contrib/ntp/scripts/plot_summary.1plot_summaryman
/freebsd-10.1-release/contrib/ntp/scripts/plot_summary.1plot_summarymdoc
/freebsd-10.1-release/contrib/ntp/scripts/plot_summary.html
/freebsd-10.1-release/contrib/ntp/scripts/plot_summary.man.in
/freebsd-10.1-release/contrib/ntp/scripts/plot_summary.mdoc.in
/freebsd-10.1-release/contrib/ntp/scripts/summary-opts
/freebsd-10.1-release/contrib/ntp/scripts/summary.1summaryman
/freebsd-10.1-release/contrib/ntp/scripts/summary.1summarymdoc
/freebsd-10.1-release/contrib/ntp/scripts/summary.html
/freebsd-10.1-release/contrib/ntp/scripts/summary.man.in
/freebsd-10.1-release/contrib/ntp/scripts/summary.mdoc.in
/freebsd-10.1-release/contrib/ntp/scripts/update-leap/invoke-update-leap.texi
/freebsd-10.1-release/contrib/ntp/scripts/update-leap/update-leap-opts
/freebsd-10.1-release/contrib/ntp/scripts/update-leap/update-leap.1update-leapman
/freebsd-10.1-release/contrib/ntp/scripts/update-leap/update-leap.1update-leapmdoc
/freebsd-10.1-release/contrib/ntp/scripts/update-leap/update-leap.html
/freebsd-10.1-release/contrib/ntp/scripts/update-leap/update-leap.man.in
/freebsd-10.1-release/contrib/ntp/scripts/update-leap/update-leap.mdoc.in
/freebsd-10.1-release/contrib/ntp/sntp/configure
/freebsd-10.1-release/contrib/ntp/sntp/include/version.def
/freebsd-10.1-release/contrib/ntp/sntp/include/version.texi
/freebsd-10.1-release/contrib/ntp/sntp/invoke-sntp.texi
/freebsd-10.1-release/contrib/ntp/sntp/m4/ntp_libevent.m4
/freebsd-10.1-release/contrib/ntp/sntp/m4/ntp_problemtests.m4
/freebsd-10.1-release/contrib/ntp/sntp/m4/version.m4
/freebsd-10.1-release/contrib/ntp/sntp/networking.c
/freebsd-10.1-release/contrib/ntp/sntp/sntp-opts.c
/freebsd-10.1-release/contrib/ntp/sntp/sntp-opts.h
/freebsd-10.1-release/contrib/ntp/sntp/sntp.1sntpman
/freebsd-10.1-release/contrib/ntp/sntp/sntp.1sntpmdoc
/freebsd-10.1-release/contrib/ntp/sntp/sntp.html
/freebsd-10.1-release/contrib/ntp/sntp/sntp.man.in
/freebsd-10.1-release/contrib/ntp/sntp/sntp.mdoc.in
/freebsd-10.1-release/contrib/ntp/sntp/tests/keyFile.c
/freebsd-10.1-release/contrib/ntp/sntp/tests/kodDatabase.c
/freebsd-10.1-release/contrib/ntp/sntp/tests/kodFile.c
/freebsd-10.1-release/contrib/ntp/sntp/tests/run-kodDatabase.c
/freebsd-10.1-release/contrib/ntp/sntp/tests/run-t-log.c
/freebsd-10.1-release/contrib/ntp/sntp/tests/t-log.c
/freebsd-10.1-release/contrib/ntp/sntp/tests/utilities.c
/freebsd-10.1-release/contrib/ntp/sntp/unity/unity_internals.h
/freebsd-10.1-release/contrib/ntp/sntp/version.c
/freebsd-10.1-release/contrib/ntp/tests/bug-2803/bug-2803.c
/freebsd-10.1-release/contrib/ntp/tests/bug-2803/run-bug-2803.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/a_md5encrypt.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/authkeys.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/buftvtots.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/calendar.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/caljulian.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/clocktime.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/decodenetnum.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/humandate.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/lfpfunc.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/lfptostr.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/modetoa.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/msyslog.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/netof.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/numtoa.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/numtohost.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/octtoint.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/prettydate.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/recvbuff.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/refidsmear.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/refnumtoa.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-a_md5encrypt.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-calendar.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-decodenetnum.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-humandate.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-lfpfunc.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-lfptostr.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-modetoa.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-msyslog.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-netof.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-numtoa.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-numtohost.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-prettydate.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-refnumtoa.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-sfptostr.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-socktoa.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-statestr.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-strtolfp.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-timespecops.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-timevalops.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-uglydate.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/sfptostr.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/socktoa.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/statestr.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/strtolfp.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/timespecops.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/timevalops.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/uglydate.c
/freebsd-10.1-release/contrib/ntp/tests/ntpd/leapsec.c
/freebsd-10.1-release/contrib/ntp/tests/ntpd/ntp_prio_q.c
/freebsd-10.1-release/contrib/ntp/tests/ntpd/ntp_restrict.c
/freebsd-10.1-release/contrib/ntp/tests/ntpd/rc_cmdlength.c
/freebsd-10.1-release/contrib/ntp/tests/ntpd/run-leapsec.c
/freebsd-10.1-release/contrib/ntp/tests/ntpd/run-ntp_restrict.c
/freebsd-10.1-release/contrib/ntp/tests/ntpd/run-rc_cmdlength.c
/freebsd-10.1-release/contrib/ntp/tests/ntpd/run-t-ntp_signd.c
/freebsd-10.1-release/contrib/ntp/tests/ntpd/t-ntp_scanner.c
/freebsd-10.1-release/contrib/ntp/tests/ntpd/t-ntp_signd.c
/freebsd-10.1-release/contrib/ntp/tests/sandbox/run-uglydate.c
/freebsd-10.1-release/contrib/ntp/tests/sandbox/smeartest.c
/freebsd-10.1-release/contrib/ntp/tests/sandbox/uglydate.c
/freebsd-10.1-release/contrib/ntp/tests/sec-2853/sec-2853.c
/freebsd-10.1-release/contrib/ntp/util/invoke-ntp-keygen.texi
/freebsd-10.1-release/contrib/ntp/util/ntp-keygen-opts.c
/freebsd-10.1-release/contrib/ntp/util/ntp-keygen-opts.h
/freebsd-10.1-release/contrib/ntp/util/ntp-keygen.1ntp-keygenman
/freebsd-10.1-release/contrib/ntp/util/ntp-keygen.1ntp-keygenmdoc
/freebsd-10.1-release/contrib/ntp/util/ntp-keygen.c
/freebsd-10.1-release/contrib/ntp/util/ntp-keygen.html
/freebsd-10.1-release/contrib/ntp/util/ntp-keygen.man.in
/freebsd-10.1-release/contrib/ntp/util/ntp-keygen.mdoc.in
/freebsd-10.1-release/etc/Makefile
yplib.c
/freebsd-10.1-release/sys/amd64/linux32/linux32_proto.h
/freebsd-10.1-release/sys/amd64/linux32/linux32_systrace_args.c
/freebsd-10.1-release/sys/amd64/linux32/syscalls.master
/freebsd-10.1-release/sys/compat/linux/linux_futex.c
/freebsd-10.1-release/sys/compat/linux/linux_misc.c
/freebsd-10.1-release/sys/conf/newvers.sh
/freebsd-10.1-release/sys/i386/linux/syscalls.master
/freebsd-10.1-release/sys/kern/kern_prot.c
/freebsd-10.1-release/sys/net/pfvar.h
/freebsd-10.1-release/sys/netinet/tcp_output.c
/freebsd-10.1-release/sys/netinet6/ip6_output.c
/freebsd-10.1-release/sys/netinet6/ip6_var.h
/freebsd-10.1-release/sys/netinet6/sctp6_usrreq.c
/freebsd-10.1-release/sys/netpfil/pf/pf.c
/freebsd-10.1-release/sys/netpfil/pf/pf_ioctl.c
/freebsd-10.1-release/sys/netpfil/pf/pf_norm.c
/freebsd-10.1-release/sys/sys/ucred.h
/freebsd-10.1-release/usr.sbin/ntp/config.h
/freebsd-10.1-release/usr.sbin/ntp/doc/ntp-keygen.8
/freebsd-10.1-release/usr.sbin/ntp/doc/ntp.conf.5
/freebsd-10.1-release/usr.sbin/ntp/doc/ntp.keys.5
/freebsd-10.1-release/usr.sbin/ntp/doc/ntpd.8
/freebsd-10.1-release/usr.sbin/ntp/doc/ntpdc.8
/freebsd-10.1-release/usr.sbin/ntp/doc/ntpq.8
/freebsd-10.1-release/usr.sbin/ntp/doc/sntp.8
/freebsd-10.1-release/usr.sbin/ntp/scripts/mkver
272461 03-Oct-2014 gjb

Copy stable/10@r272459 to releng/10.1 as part of
the 10.1-RELEASE process.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


256281 10-Oct-2013 gjb

Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


241046 29-Sep-2012 jilles

libc: Use O_CLOEXEC for various internal file descriptors.

This fixes a race condition where another thread may fork() before CLOEXEC
is set, unintentionally passing the descriptor to the child process.

This commit only adds O_CLOEXEC flags to open() or openat() calls where no
fcntl(fd, F_SETFD, FD_CLOEXEC) follows. The separate fcntl() call still
leaves a race window so it should be fixed later.


231118 07-Feb-2012 dim

Consistently set RPCGEN_CPP when running rpcgen, so the C preprocessor
set via ${CPP} is used, instead of always using hardcoded /usr/bin/cpp.

MFC after: 1 week


228828 23-Dec-2011 ghelmer

Handle malloc failures in yplib.c.

PR: bin/83349


228826 23-Dec-2011 ghelmer

Handle failures to malloc memory to hold key or val copies.

PR: bin/83348


219126 01-Mar-2011 brucec

Remove duplicate "in".

Suggested by: Rob Farmer <rfarmer at predatorlabs.net>
MFC after: 3 days


219096 28-Feb-2011 brucec

Revert some of r177626. "in in" is valid in certain sentences.

PR: 121490
MFC after: 3 days


199784 25-Nov-2009 wollman

Eliminate more dead stores.

Found by: Clang static analyzer
MFC after: 7 days


177626 26-Mar-2008 brueffer

Fix some "in in" typos in comments.

PR: 121490
Submitted by: Anatoly Borodin <anatoly.borodin@gmail.com>
Approved by: rwatson (mentor), jkoshy
MFC after: 3 days


171563 24-Jul-2007 simon

Set timeout for all NIS RPC requests to 1 second and not just for
yp_next as revision 1.50 did. This should fix, or at least very much
reduce the risk of, NIS timing out due to UDP packet loss for NIS
functions.

See also revision 1.50 for more details about the general problem.

Tested by: nosedive, freefall, hub, mx1, brooks
MFC after: 1 week
Approved by: re (mux)


169092 29-Apr-2007 deischen

Use C comments since we now preprocess these files with CPP.


167197 04-Mar-2007 simon

- Bump _yplib_timeout limit from 10 to 20 seconds to better handle
packet loss when talking to a NIS server.
- Set 1 second retry timeout to further realistically handle UDP
packet loss for yp_next packet bursts. If the packet hasn't come
back within 1 second its rather unlikely to come back at all. There
is still back-off mechanism in RPC so if there is another reason
than packet loss for the lack of response within 1 second, the NIS
server will not be totally bombarded with requests.

This reduces the risk of NIS failing with:

yp_next: clnt_call: RPC: Timed out

considerably. This is mainly a problem if you have larger NIS maps
(like at FreeBSD.org) since enumerations of the lists will cause a UDP
packet bursts where a few packets being lost once in a while do
happen.

MFC after: 1 week
Discussed with: peter
Problem mainly diagnosed by: peter


156613 13-Mar-2006 deischen

Add each directory's symbol map file to SYM_MAPS.


156608 13-Mar-2006 deischen

Add symbol maps and initial symbol version definitions to libc.

Reviewed by: davidxu


145849 03-May-2005 ume

do mutex lock for each yp calls. with this,
http://cvsweb.netbsd.org/bsdweb.cgi/src/regress/lib/libpthread/resolv/
is working.


144714 06-Apr-2005 ume

MUTEX_INITIALIZER should be used instead of
PTHREAD_MUTEX_INITIALIZER, here.


144678 05-Apr-2005 ume

protect _yp_domain with mutex lock.

Inspired by: NetBSD


143415 11-Mar-2005 stefanf

Use socklen_t where appropriate.


114443 01-May-2003 nectar

Back out the `hiding' of strlcpy and strlcat. Several people
vocally objected to this safety belt.


114256 29-Apr-2003 nectar

`Hide' strlcpy and strlcat (using the namespace.h / __weak_reference
technique) so that we don't wind up calling into an application's
version if the application defines them.

Inspired by: qpopper's interfering and buggy version of strlcpy


107052 18-Nov-2002 ru

libc_r wasn't so tied to libc for 22 months.


95658 28-Apr-2002 des

Spell void * as void * rather than caddr_t. This is complicated by the
fact that caddr_t is often misspelled as char *.

Sponsored by: DARPA, NAI Labs


92986 22-Mar-2002 obrien

Fix the style of the SCM ID's.
I believe have made all of libc .c's as consistent as possible.


90868 18-Feb-2002 mike

o Move NTOHL() and associated macros into <sys/param.h>. These are
deprecated in favor of the POSIX-defined lowercase variants.
o Change all occurrences of NTOHL() and associated marcros in the
source tree to use the lowercase function variants.
o Add missing license bits to sparc64's <machine/endian.h>.
Approved by: jake
o Clean up <machine/endian.h> files.
o Remove unused __uint16_swap_uint32() from i386's <machine/endian.h>.
o Remove prototypes for non-existent bswapXX() functions.
o Include <machine/endian.h> in <arpa/inet.h> to define the
POSIX-required ntohl() family of functions.
o Do similar things to expose the ntohl() family in libstand, <netinet/in.h>,
and <sys/param.h>.
o Prepend underscores to the ntohl() family to help deal with
complexities associated with having MD (asm and inline) versions, and
having to prevent exposure of these functions in other headers that
happen to make use of endian-specific defines.
o Create weak aliases to the canonical function name to help deal with
third-party software forgetting to include an appropriate header.
o Remove some now unneeded pollution from <sys/types.h>.
o Add missing <arpa/inet.h> includes in userland.

Tested on: alpha, i386
Reviewed by: bde, jake, tmm


90298 06-Feb-2002 des

ANSIfy and remove some dead code.

Sponsored by: DARPA, NAI Labs


90297 06-Feb-2002 des

Apply the following mechanical transformations in preparation for
ansification and constification:

s{\s+__P\((\(.*?\))\)}{$1}g;
s{\(\s+}{\(}g;
s{\s+\)}{\)}g;
s{\s+,}{,}g;
s{(\s+)(for|if|switch|while)\(}{$1$2 \(}g;
s{return ([^\(].*?);}{return ($1);}g;
s{([\w\)])([!=+/\*-]?=)([\w\(+-])}{$1 $2 $3}g;
s{\s+$}{\n};g

Also add $FreeBSD$ where needed.

MFC after: 1 week


90271 05-Feb-2002 alfred

Fix cc -Wall, fix rcsid warnings, add missing prototypes,
change prototypes to be the same as in the original sun tirpc code.
Remove ()P macro in a file where the mayority had ()P already removed.
Add them if the mayority use ()P macros.

Submitted by: mbr
Requested by: bde


89084 08-Jan-2002 jhb

Fix some 32/64-bit bugs. IPv4 addresses are 32-bits, not longs. On the
alpha these bugs didn't cause any problems because it was little endian,
but on sparc64, we ended up with garbage for the IP address when we tried
to contact the server. (Usually 3.253.0.0)

Not objected to by: wpaul


77044 23-May-2001 pirzyk

Changed the clnt_perror string in yp_all because it was saying the
error came from yp_next

PR: bin/13254
Submitted by: Jim Pirzyk
Reviewed by: jkh
MFC after: 1 week


71579 24-Jan-2001 deischen

Remove _THREAD_SAFE and make libc thread-safe by default by
adding (weak definitions to) stubs for some of the pthread
functions. If the threads library is linked in, the real
pthread functions will pulled in.

Use the following convention for system calls wrapped by the
threads library:
__sys_foo - actual system call
_foo - weak definition to __sys_foo
foo - weak definition to __sys_foo

Change all libc uses of system calls wrapped by the threads
library from foo to _foo. In order to define the prototypes
for _foo(), we introduce namespace.h and un-namespace.h
(suggested by bde). All files that need to reference these
system calls, should include namespace.h before any standard
includes, then include un-namespace.h after the standard
includes and before any local includes. <db.h> is an exception
and shouldn't be included in between namespace.h and
un-namespace.h namespace.h will define foo to _foo, and
un-namespace.h will undefine foo.

Try to eliminate some of the recursive calls to MT-safe
functions in libc/stdio in preparation for adding a mutex
to FILE. We have recursive mutexes, but would like to avoid
using them if possible.

Remove uneeded includes of <errno.h> from a few files.

Add $FreeBSD$ to a few files in order to pass commitprep.

Approved by: -arch


56698 27-Jan-2000 jasone

Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(),
just use _foo() <-- foo(). In the case of a libpthread that doesn't do
call conversion (such as linuxthreads and our upcoming libpthread), this
is adequate. In the case of libc_r, we still need three names, which are
now _thread_sys_foo() <-- _foo() <-- foo().

Convert all internal libc usage of: aio_suspend(), close(), fsync(), msync(),
nanosleep(), open(), fcntl(), read(), and write() to _foo() instead of foo().

Remove all internal libc usage of: creat(), pause(), sleep(), system(),
tcdrain(), wait(), and waitpid().

Make thread cancellation fully POSIX-compliant.

Suggested by: deischen


55837 12-Jan-2000 jasone

Add three-tier symbol naming in support of POSIX thread cancellation
points. For library functions, the pattern is __sleep() <--
_libc_sleep() <-- sleep(). The arrows represent weak aliases. For
system calls, the pattern is _read() <-- _libc_read() <-- read().


54167 05-Dec-1999 kris

Fix buffer overflows.

Reviewed by: imp, audit@freebsd.org


50476 28-Aug-1999 peter

$Id$ -> $FreeBSD$


35898 09-May-1998 bde

Fixed the usual missing dependencies on headers generated by rpcgen.

Use rpcgen's -C option, although using it for non-headers breaks K&R
support. A local copy of yp.h is built to avoid adding
-I/usr/include/rpcsvc to CFLAGS. This version of yp.h differed from
<rpcsvc/yp.h> only in not declaring prototypes.

Fixed style bugs.


34146 07-Mar-1998 wpaul

Fix resource allocation problems:

- Completely recoded the ypmatch cache code. The old code could leak
memory: it would allow the cache to grow, but never
shrink. The new code imposes the following limits:

o The cache is capped at a limit of 5 entries.
o Each entry expires after five seconds, at which point
its slot is freed.
o If an insertion is to be done and all five slots
are filled, the oldest entry is forcibly expired
to release its slot.

Also, the cache is implemented on a per-binding basis rather than
having a global cache covering all bindings. This means that each
bound domain has its own 5 slot cache.

- Changed clntudp_create() to clntudp_bufcreate() so that the
xmit/recv message buffer sizes can be set explicitly. NIS transactions
are rarely much larger than 1024 bytes since YPMAXRECORD is 1024.
The defaults chosen by clntudb_create() are actually much larger
than needed. I set the xmit buffer to a little over 1024 and the
recv buffer to a little over 2048. This saves a few Kbytes for each
NIS binding.

- Add my name to the copyright. I think I've made enough changes to
this file to merit it. :)

Note: these changes should go into the 2.2.x branch, but I'm waiting
on feedback from a tester to see if the cache fixes solve the reported
memory leak problem.


26047 23-May-1997 asami

Use ${DESTDIR} correctly in front of absolute paths.


25401 03-May-1997 jb

Changed all paths to be relative to src/lib instead of src/lib/libc
so that all these makefiles can be used to build libc_r too.

Added .if ${LIB} == "c" tests to restrict man page builds to libc
to avoid needlessly building them with libc_r too.

Split libc Makefile into Makefile and Makefile.inc to allow the
libc_r Makefile to include Makefile.inc too.


24797 10-Apr-1997 wpaul

Don't even think about processing bogus domain names here.


22993 22-Feb-1997 peter

Revert $FreeBSD$ to $Id$


21673 14-Jan-1997 jkh

Make the long-awaited change from $Id$ to $FreeBSD$

This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.


20716 20-Dec-1996 wpaul

Fix for bug noticed by Christoph Kukulies.

_yp_dobind() checks to see if a fork() happens (by checking PIDs) and
invalidates all bindings if it finds itself in a newly created child
process. (This avoids sharing RPC client handles and socket descriptors
with the parent, which would be bad.) Unfortunately, it summarily
calls clnt_destroy() on the handles, which may result in the destruction
of a descriptor that isn't really a socket.

This is fixed by replacing the explicit call to clnt_destroy() with a
call to _yp_unbind(), which deals with potentially hosed socket descriptors
an a safe manner.

This is basically a one-liner. Once I confirm that it fixes Christoph's
problem, I'd like permission to put it in the 2.2-RELENG branch.


19520 08-Nov-1996 wpaul

- Avoid possible SEGVs: never call clnt_destroy() without checking
for NULL RPC client handles. This should hopefully fix the problems
Satoshi reported on -current.

- Add socket descriptor sanity checks to _yp_unbind().

- Fix yp_order() so that it handles the RPC_PROCUNAVAIL error gracefully.
NIS+ in YP compat mode doesn't support the YPPROC_ORDER procedure.

This is a 2.2 candidate with bells on.


17162 13-Jul-1996 wpaul

In _yp_dobind(), if we find ourselves required to contact the local ypbind
directly in order to obtain binding information, check that the local
ypbind is using a reserved port and return YPERR_YPBIND if it isn't.
We should not trust any ypbind running on a port >= IPPORT_RESERVED;
it may have been started by a malicious user hoping to trick us into
talking to a bogus ypserv.

Note that we do not check the ypserv port returned to us from ypbind.
It is assumed that ypbind has already done a reserved port test (or not,
depending on whether or not it was started with -s); if we trust the
authenticity of the local ypbind, we should also trust its judgement.

Obtained from: OpenBSD


17141 12-Jul-1996 jkh

General -Wall warning cleanup, part I.
Submitted-By: Kent Vander Velden <graphix@iastate.edu>


16106 04-Jun-1996 jraynard

Code clean up:

Changed type of pid from int to pid_t. (Missed one!)


16096 03-Jun-1996 jraynard

Code clean up:

Changed type of pid from int to pid_t.


16095 03-Jun-1996 jraynard

Code clean up:

Added missing headers for system functions.


16051 01-Jun-1996 wpaul

Make _yp_dobind() a litle smarter:

Now that we preserve RPC handles instead of rebuilding them each time
a ypcln function is called, we have to be careful about keeping our sockets
in a sane state. It's possible that the caller may call a ypclnt
function, and then decide to close all its file descriptors. This would
also close the socket descriptor held by the yplib code. Worse, it
could re-open the same descriptor number for its own use. If it then calls
another ypclnt function, the subsequent RPC will fail because the socket
will either be gone or replaced with Something Completely Different. The
yplib code will recover by rebinding, but it doing so it may wreck the
descriptor which now belongs to the caller.

To fix this, _yp_dobind() needs to label the descriptor somehow so
that it can test it later to make sure it hasn't been altered between
ypclnt calls. It does this by binding the socket, thus associating a port
number with it. It then saves this port number in the dom_local_port member
of the dom_binding structure for the given domain. When _yp_dobind() is
called again (which it is at the start of each ypclnt function), it checks
to see if the domain is already bound, and if it is, it does a getsockname()
on the socket and compares the port number to the one it saved. If the
getsockname() fails, or the port number doesn't match, it abandons the
socket and sets up a new client handle.

This still incurs some syscall overhead, which is what I was trying to
avoid, but it's still not as bad as before.


15793 16-May-1996 wpaul

- Patch around amd core dump problem: don't allow yp_unbind() or _yp_unbind()
to call clnt_destroy() on a potentially NULL RPC handle. Somebody should
bang on this a bit to make sure the problem is really gone; I seem to
have difficulty reproducing it. Patch provided by Peter Wemm and
slightly tweaked by me.

- Don't call _yp_unbind() in individual ypclnt functions unless we encounter
an RPC error while making a clnt_call().


15547 02-May-1996 wpaul

NIS client-side performance tweak:

Each of the ypclnt functions does a _yp_dobind() when it starts and then
a _yp_unbind() when it finishes. This is not strictly necessary and it
wastes cycles: it means we do a new clnt_create() and clnt_destroy()
for each yp_whatever() call. In fact, you can do multiple clnt_call()s
using a single RPC client handle returned by clnt_create(). Ideally we only
have to create a handle to ypserv once (the first time we call a ypclnt
function) and then destroy it and rebind only if a call to ypserv fails.

- Modify _yp_dobind() so that it only creates a new RPC client handle
when establishing a new binding or when one of the ypclnt calls
invalidates an existing binding and calls _yp_dobind() to establish
a new one.

- Modify the various ypclnt functions to only call _yp_unbind() if a
call to ypserv fails.


14776 23-Mar-1996 wpaul

Don't bother trying to flock() /var/run/ypbind.lock; this breaks when
/var/run resides on an NFS filesystem (flock() always returns 0 in
this case, so we falsely assume that ypbind is dead and bail out).

Settle instead for better failure checking when using clnttcp_create()
and clnt_call() to interact with ypbind. We still try to flock()
/var/yp/binding/$DOMAINNAME.2, but if this doesn't work, we drop into
the code that retrieves the binding information from ypbind directly.
If that also fails, then we're toast. On NFS filesystems, this means
we'll be ignoring the binding file for no reason and always talking to
ypbind even though we don't have to, but at least things will work.

(I could just replace the flock(/var/run/ypbind.lock) check with
an RPC call to ypbind's NULLPROC procedure, but if the flock() of
the binding file doesn't pan out we're going to try to talk to
ypbind later anyway. *sigh* Is NFS file locking ever going to work?)


14719 19-Mar-1996 wpaul

Fix yp_all() so that it doesn't bogusly return YP_NOMORE at the end
of a successful map retrieval. (This has to do with a previous change
to xdr_ypresp_all_seq() and ypxfr_get_map(); originally, yp_all()
would look for a return value of YP_FALSE to signal success, but now
it should be looking for YP_NOMORE. It should not be passing YP_NOMORE
back up to the caller though.)

Noticed by: <aagero@aage.priv.no>

There is also another small bug here, which is that the call to
xdr_free() that happens immediately after the clnt_call() in yp_all()
clobbers the return status value. I've worked around this for now,
but I think the xdr_free() is actually bogus and should be removed.
I want to check some more before I do that though.


13894 04-Feb-1996 wpaul

Make sure xdr_ypresp_all_seq() always returns a sane 'status' value.
(There were cases where it was leaving the status uninitialized.)


12859 15-Dec-1995 wpaul

Clean up a few things left dangling after the last commit. The new
XDR routines auto-generated by rpcgen don't quite match the format of
the original ones even though tey have the same names (that was one of
the things wrong with the old XDR routines).


12816 14-Dec-1995 wpaul

Now that rpcgen is squared away, arrange to have all the NIS XDR routines
rpcgen-erated on the fly (just like librpcsvc).

Makefile: Add rule for generating yp_xdr.c and yp.h.

xdryp.c: gut everything except the special ypresp_all XDR function
needed to to handle yp_all() (this one can't be created on
the fly), and xdr_datum(), which isn't used internally by
libc, but which as documented as being there in yp_prot.h,
so what the hell. We now get everything else from yp_xdr.c.

yplib.c: change a few structure member names to match those found in
yp.h instead of those declared in yp_prot.h.


12095 05-Nov-1995 wpaul

- Make _do_ypbind() check for /var/run/ypbind.lock and attempt to flock()
it before before trying to establish a binding. If /var/run/ypbind.lock
doesn't exist, or if it exists and isn't locked, then ypbind isn't
running, which means NIS is either turned off or hosed.

- Have _yp_check() call yp_unbind() after it sucessfully calls yp_bind()
to make sure it frees resources correctly. (I don't think there's really
a memory leak here, but it seems somehow wrong to call yp_bind() without
making a corresponding call to yp_unbind() afterwards.)

This makes the NIS code behave a little better in cases where libc makes
calls to NIS, but it isn't running correctly (i.e. there's no ypbind).

This cleans up some strange libc behavior that manifests itself if
you have the system domain name set, but aren't actually running NIS.
In this event, the getrpcent(3) code could try to call into NIS and
cause several inexplicable "clnttcp_create error: RPC program not
registered" messages to appear. This happens because _yp_check() checks
if the system domain name is set and, if it is, proceeds to call
yp_bind() to attempt to establish a binding. Since there is no
binding file (remember: ypbind isn't running, so /var/yp/binding
will be empty), _yp_dobind() will attempt to contact ypbind to
prod it into binding the domain. And because ypbind isn't running,
the code generates the 'clnttcp_create' error. Ultimately the
_yp_check() fails and the getrpcent(3) code rolls over to the /etc/rpc
file, but the error messages are annoying, and the code should be
smart enough to forgo the binding attempt when NIS is turned off.


10522 02-Sep-1995 wpaul

Clear up a minor bogosity in yp_match(): we have YPMATCHCACHE turned
on, which is fine, except that _yp_dobind() is called before we check
the cache. The means we can return from the cache check (if we have
a hit) without calling _yp_unbind().

We should do the cache check first and _then_ drop into the section
that binds the server and does the yp_match query.


9403 05-Jul-1995 wpaul

The ypprot_err() function incorrectly maps YP_NODOM to YPERR_NODOM.
Strange as it sounds, it should map to YPERR_DOMAIN instead.

The YP_NODOM protocol error code is generally returned by ypserv when you
ask it for data from a domain that it doesn't support. By contrast,
the YPERR_NODOM error code means 'local domain name not set.'
Consequently, this incorrect mapping leads to yperr_string() generating
a very confusing error message. YPERR_DOMAIN says 'couldn't
bind to a server which serves this domain' which is much closer
to the truth.


8870 30-May-1995 rgrimes

Remove trailing whitespace.


8245 03-May-1995 wpaul

Cosmetic changes and paranoia checks:

ypbind.c:
Make fewer assumtions about the state of the dom_alive and dom_broadcasting
flags in roc_received().

If select() fails, use syslog() to report the error rather than perror().

Check that all our malloc()s succeed. Report malloc() failure in
ypbindproc_setdom_2() to callers.

yplib.c:

Use #defined constants in ypbinderr_string() rather than hard-coded values.


8091 26-Apr-1995 wpaul

ypbind.c: Major overhaul.

- Moved to a more client-driven model. We aggressively attempt to keep
the default domain bound (as before) but we give up on non-default
domains if we lose contact with a server and fail to get a response
after one round of broadcasting. This helps drastically reduce the
amount of network bandwitdh that ypbind consumes: if a client references
the secondary domain at some later point, this will prod ypbind into
establishing a new binding anyway, so continuously broadcasting without
need is pointless.

Note that we still actively seek out a binding for our default domain
even if no client program has queried us yet. I'm not exactly sure if
this matches SunOS's behavior or not, but I decided to do it this way
since we can get into all sorts of trouble if our default domain comes
unbound. Even so, we're still much quieter than we used to be.

- Removed a bunch of no-longer pertinent comments and a couple of
chunks of #ifdef 0'ed code that no longer fit in to the new layout.

- Theo deRaadt must have become frustrated with the callback mechanism
in clnt_broadcast(), because he shamelessly stole the clnt_broadcast()
code right out of the RPC library and hacked it up to suit his needs.
(Comments and all! :)

I can understand why: clnt_broadcast() blocks while awaiting replies.
Changing this behavior requires surgery. However, you can work around
this: fork the broadcast into a child process and relay the results
back to the parent via a pipe. (Careful obervation has shown that the
SunOS ypbind forks children for broadcasting too, though I can only
guess what sort of interprocess communication it uses. pipe() seems to
do the job well enough.)

This may seem like the long way around, but it's not really that
hard to implement, and I'd prefer to use documented RPC library functions
wherever possible. We're careful to limit the number of simultaneous
broadcasters to avoid swamping the system (the current limit is 5).
Each clnt_broadcast() call only sends out a small number of packets
at increasing intervals. We're also careful not to spawn more than one
bradcaster for a given domain.

- Used clntudp_bufcreate() and clnt_call() to implement a ping()
function for directly querying a particular server so that we can
check if it's still alive. This lets me completely remove the old
bradcasting code and use actual RPC library calls instead, at the
cost of more than a few handfulls of torn-out hair. (Make no mistake
folks: I *HATE* RPC.) Currently, the ping interval is one minute.

- Fixed another potential 'nfds too big for select()' bug: use
_rpc_dtablesize() instead of getdtablesize().

- Quieted gcc -Wall a bit.

- Probably a bunch of other stuff that I've forgotten.

ypbind.8:

- Updated man page to reflect modifications.

ypwhich.c:

- Small mind-o fix from last time: decode error results from
ypbind correctly (*groan*)

yplib.c:

- same as above

- Change behavior of _yp_dobind() a little: if we get back a 'Domain
not bound' error for a given domain, retry a few times before giving
up and passing the error back to the caller. We have to sleep for a
few seconds between tries since the 'Domain not bound' error comes
back immediately (by repeatedly looping, we end up pounding on ypbind).
We retry at most 20 times at 5 second intervals. This gives us a full
minute to get a response. This seems to deviate a bit from SunOS
behavior -- it appears to wait forever -- but I don't like the idea
of perpetually hanging inside a library call.

Note that this should fix the problems some people have with bindings
not being established fast enough at boot time; sometimes amd is started
in /etc/rc after ypbind has run but before it gets a binding set up. The
automounter gets annoyed at this and tends to exit. By pausing ther YP
calls until a binding is ready, we avoid this situation.

- Another _yp_dobind() change: if we determine that our binding files
are unlocked or nonexistent, jump directly to code that pokes ypbind
into restablishing the binding. Again, if it fails, we'll time out
eventually and return.


7982 21-Apr-1995 wpaul

small NIS binding fixes:

ypbind.c: if a client program asks ypbind for the name of the server
for a particular domain, and there isn't a binding for that domain
available yet, ypbind needs to supply a status value along with its
failure message. Set yprespbody.ypbind_error before returning from
a ypbindproc_domain request.

yplib.c: properly handle the error status messages ypbind now has the
ability to send us. Add a ypbinderr_string() function to decode the
error values.

ypwhich.c: handle ypbind errors correctly: yperr_string() can't handle
ypbind_status messages -- use ypbinderr_string instead.


7722 09-Apr-1995 wpaul

More of the same: we also need to handle multiple domains properly
even if /var/yp/binding/DOMAIN.VERS doesn't exist yet.


7721 09-Apr-1995 wpaul

Fix behavior of YP library routines in environments with multiple domains,
where one or more of the non-default domains are not yet bound.

If we make a YP request for a domain other than the default domain,
and there is no binding for the new domain yet, _yp_dobind() sees
that the /var/yp/binding/DOMAIN.VERS file for the unbound domain is
not locked (by ypbind) and from this it concludes that the NIS system
is dead, so it gives up.

This behavior has been changed: before giving up in this case, we now
make a second check to see if the binding file for the *default* domain
is also not locked. Only if the default domain binding file is also
unlocked to we now assume that ypbind has bought the farm and bail out.
(Note: this assumes that the user hasn't changed the default domain
while ypbind is running.)

With this change, _do_ypbind() is allowed to proceed into the next
section of code wherein it prods ypbind into establishing a binding
for the new domain. This first call times out after ten seconds,
after which it should retry and succeed. From then on, the binding
for the second domain should be handled normally.


7597 02-Apr-1995 wpaul

Fix xdr_ypmap_parms() so that it agrees with xdr_domainname(), xdr_peername()
and friends.


7573 02-Apr-1995 wpaul

Add some missing xdr functions needed for server-side implementations.
(This is to help me reduce yppush a bit: it has its own copy of yp_xdr.c
right now, but I can get rid of it now that this stuff is here.)


7337 24-Mar-1995 wpaul

Add more sanity checks. *Lots* of sanity checks. Huge tracts of sanity checks.
Make sure all arguments to the yp_*() functions are valid before sending
them off to the server. This is somewhat distressing: once again my
FreeBSD box brought down my entire network because of NIS bogosities.
I *think* the poor argument checking in this module is the cause, but
I still haven't been able to reproduce the exact series of events that
lead to the ypserv crashes. For now I've resorted to sticking my FreeBSD
box in a seprate domain. Hopefully a weekend of heavy testing will
uncover the problem.


7290 23-Mar-1995 wpaul

Don't let yp_match() or yp_next() operate on null or empty keys: asking
ypserv to do a yp_match() with an a null or empty key causes much havok.
(Note that this could be construed as a denial of service attack if used
maliciously.)


7202 21-Mar-1995 wpaul

Reviewed by: Bill Paul <wpaul@freebsd.org>
Submitted by: Sebastian Strollo <seb@erix.ericsson.se>

- In /usr/src/lib/libc/yp/yplib.c, function yp_first when clnt_call
fails with (r != RPC_SUCCESS) ysd->dom_vers should be set to 0! This
ensures that /var/yp/bindings/dom.vers will be read again on retry.
What happens now is that when our server is down and someone tries to
use yp they will continue to try until kingdom come. So:
if(r != RPC_SUCCESS) {
clnt_perror(ysd->dom_client, "yp_first: clnt_call");
ysd->dom_vers = -1;
^^^^ change to 0
goto again;
}


1919 07-Aug-1994 wollman

Add back in the YP code from 1.1.5. (This attribution brought to you
by Theo de Raadt.) Added a new make flag variable, NO_YP_LIBC, which
disables YP entirely. User-land programs to come later.