[BACK]Return to plus23.html CVS log [TXT][DIR] Up to [local] / www

File: [local] / www / plus23.html (download) (as text)

Revision 1.83, Sun Mar 10 18:46:16 2024 UTC (2 months ago) by tj
Branch: MAIN
CVS Tags: HEAD
Changes since 1.82: +1 -0 lines

reroll plus pages for 7.5

<!doctype html>
<html lang=en id=plus>
<meta charset=utf-8>
<title>OpenBSD 2.3 Changelog</title>
<meta name="description" content="OpenBSD 2.3 changes">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="openbsd.css">
<link rel="canonical" href="https://www.openbsd.org/plus23.html">
<style>
strong {
	color: var(--red);
}

h3 {
	color: var(--blue);
}

p strong {
	font-weight: normal;
}

code {
	font-family: serif;
	font-weight: bolder;
}
</style>

<h2 id=OpenBSD>
<a href="index.html">
<i>Open</i><b>BSD</b></a>
2.3 Changelog
</h2>
<hr>

<p>
This is a partial list of the major machine independent changes
(i.e., these are the changes people ask about most often).  Machine
specific changes have also been made, and are sometimes mentioned
in the pages for the specific <a href=plat.html>platforms</a> if you
are interested in further port-specific details.  Many ports
have had architecture-specific enhancements relative to NetBSD,
but when they do not they certainly have plenty of platform-independent
changes, starting with those listed below..

<p>
Note: <strong>Problems for which patches exist are marked in red</strong>.

<p>
For changes in other releases, click below:<br>
<a href="plus20.html">2.0</a>,
<a href="plus21.html">2.1</a>,
<a href="plus22.html">2.2</a>,
<a href="plus24.html">2.4</a>,
<a href="plus25.html">2.5</a>,
<a href="plus26.html">2.6</a>,
<a href="plus27.html">2.7</a>,
<a href="plus28.html">2.8</a>,
<a href="plus29.html">2.9</a>,
<a href="plus30.html">3.0</a>,
<a href="plus31.html">3.1</a>,
<a href="plus32.html">3.2</a>,
<a href="plus33.html">3.3</a>,
<a href="plus34.html">3.4</a>,
<a href="plus35.html">3.5</a>,
<a href="plus36.html">3.6</a>,
<a href="plus37.html">3.7</a>,
<br>
<a href="plus38.html">3.8</a>,
<a href="plus39.html">3.9</a>,
<a href="plus40.html">4.0</a>,
<a href="plus41.html">4.1</a>,
<a href="plus42.html">4.2</a>,
<a href="plus43.html">4.3</a>,
<a href="plus44.html">4.4</a>,
<a href="plus45.html">4.5</a>,
<a href="plus46.html">4.6</a>,
<a href="plus47.html">4.7</a>,
<a href="plus48.html">4.8</a>,
<a href="plus49.html">4.9</a>,
<a href="plus50.html">5.0</a>,
<a href="plus51.html">5.1</a>,
<a href="plus52.html">5.2</a>,
<a href="plus53.html">5.3</a>,
<a href="plus54.html">5.4</a>,
<br>
<a href="plus55.html">5.5</a>,
<a href="plus56.html">5.6</a>,
<a href="plus57.html">5.7</a>,
<a href="plus58.html">5.8</a>,
<a href="plus59.html">5.9</a>,
<a href="plus60.html">6.0</a>,
<a href="plus61.html">6.1</a>,
<a href="plus62.html">6.2</a>,
<a href="plus63.html">6.3</a>,
<a href="plus64.html">6.4</a>,
<a href="plus65.html">6.5</a>,
<a href="plus66.html">6.6</a>,
<a href="plus67.html">6.7</a>,
<a href="plus68.html">6.8</a>,
<a href="plus69.html">6.9</a>,
<a href="plus70.html">7.0</a>,
<a href="plus71.html">7.1</a>,
<br>
<a href="plus72.html">7.2</a>,
<a href="plus73.html">7.3</a>,
<a href="plus74.html">7.4</a>,
<a href="plus75.html">7.5</a>,
<a href="plus.html">current</a>.
<br>

<p>
<h3>Changes made between OpenBSD 2.2 and 2.3</h3>
<p>

<ul>
<li><strong>A security problem due to buffer mismanagement exists in lprm(1). <a href="errata22.html#rmjob">A patch exists</a></strong>.
<li><strong>A security problem due to a buffer overflow exists in uucpd(8) (which is not enabled by default in our releases). <a href="errata22.html#uucpd">A patch exists</a></strong>.
<li>On the i386, fix installboot(8) so it works reliably on various filesystem layouts that did not work before.
<li>Support lots of file descriptors in named(8), for when many virtual interfaces exist.
<li>Fix installboot(8) on the sparc Sun4 models.
<li>In disklabel(8)'s <code>-E</code> mode, set the bootblock sizes so that the hp300 install does not freak out.
<li>In mktemp(3), repair a bug in the filename incrementing loop.
<li>Various other install script fixes.
<li>Fix /etc/fbtab handling in init(8).
<li>Make disklabel(8) mentions IDE (which is an alias for ESDI).
<li>For the i386, have the install procedure ask if the xf86 driver should be enabled by default.
<li>Make install procedure prompt &amp; set the initial root password.
<li>When root logs in for the first time, let him find that he has an interesting piece of mail about how the system works.
<li>Fix ipsec encap notifies.
<li>Configure xdm(1) and the fwvm window manager sensibly enough for default users to not feel utterly lost.
<li>Fix 'u'ndo support in disklabel(8)'s <code>-E</code> mode, and also add a new 'r' command.
<li>Repair the pkg_add(1) sufficiently for the 2.3 release...
<li>Fix a race condition in unmount(2).
<li>Add support for the XR16850 serial chip (128 byte fifos).
<li>mkisofs 1.11.2
<li>Disable console ddb by default.  sysctl can re-enable it.
<li>Fix backtraces in gdb on m68k platforms.
<li>Support 3c905B (well, actually, our support falls over. We need a card to do further work).
<li>Modify i386 PS/2 driver to be read/write; this permits new XFree86 source to put mice into advanced modes of operation.
<li>Remove KTH Kerberos "eavesdropping" message from telnet(1) and telnetd(8).
<li>Fix bug oflow in ping(8) <code>-R</code> option.
<li>In tar(1), only preserve the uid/gid if the <code>-p</code> flag is given.
<li>sudo version 1.5.5
<li>Do not prepend /usr/local/bin to the PATH in zdiff(1), zforce(1), zgrep(1), zmore(1), znew(1), or rcsfreeze(1).
<li>Fix DNS fake-iquery bug.
<li>In the <code>le</code> ethernet driver, if the detected ethernet address is ff:ff:ff:ff:ff ... fail.
<li>Fixes for various (minor) Y2K problems.
<li>Switch a.out ports in the tree (sparc, m68k, i386) to use the newer version of gdb that is part of the binutils tree.
<li>Significantly improve the system install scripts.
<li>Add disklabel spoofing to the hp300 port.
<li>Add xlockmore(1) to the X11 tree.
<li>Fix <code>ru_majflt</code> counting in the VM system.
<li>Add AFS token fetching capability to various parts of the source tree.
<li>In login(1), handle cleanup of environment variables correctly.
<li>In ftp(1), for HTTP requests pass the hostname so that virtual hosts work.
<li>In utimes(2) and futimes(2), handle <code>tv_sec</code> values of -1 more carefully, as they are really illegal cases.
<li>Import <code>kx</code> into our X11 source tree.
<li>Add a <code>SIOCGIFDATA</code> ifreq-style ioctl which will get the ifdata informational structure attached to each interface.
<li>Add httpd(8) to the OpenBSD tree.  It is apache 1.2.6.
<li>Import <code>xpm</code> into our X11 source tree.
<li>Support QLogic PCI scsi controllers (at least on the i386).
<li>Fix rmd160(3) (and also the IPSEC algorithm) to properly handle data beyond its block boundary.
<li>Emulate SunOS <code>otimes(2)</code> system call so that Netscape doesn't explode.
<li>Fix rarpd(8) interaction with routed(8); too much routing information would pile up un-read on the AF_ROUTE socket and rarpd(8) would get too grumpy.
<li>Remove libtelnet.so.* from the distribution.  People compiling kerberos into their system were generating significantly different shared libraries; thus it is wrong to make this a shared library.
<li>Make edquota(8) handle numeric names as uids only after checking that an account named so does not exist.
<li>Add UID_MAX and GID_MAX to &lt;machine/limits.h&gt; on each architecture.
<li>Fix ch(4) operation on ncr(4) scsi controllers.
<li>On the sparc, switch to an alternate font if the console is &lt; 800*600 resolution.
<li>Add ISAPNP driver for the 3c509 cards.
<li>Change <code>SIOCGIFNETMASK</code>, <code>SIOCGIFDSTADDR</code>, and <code>SIOCGIFBRDADDR</code> to return information for named/addressed mappings rather than simply named mappings, so that these calls can work on interface aliases.
<li>Add (complete?) support for KerberosIV to our X11R6.
<li>In mktemp(1), document why this should be used for temporary filename generation.
<li>In telnet(1), fix connecting to IP addresses; this was recently broken by the new KTH kerberos telnet integration.
<li>Make <code>-R path</code> work a well as <code>-Rpath</code> in cc(1).
<li>In the ksh(1) manpage, clarify the behaviour of the <code>CDPATH</code> variable.
<li>Add support for more PCI NE2000 cards.
<li>Make <code>%Y</code> override an earlier <code>%y</code> in strptime(3).
<li>Add support for <code>atalk</code> to ifconfig(8).
<li>Make the functions described in ethers(3) more careful.
<li>Fix support for VFS loadable kernel modules.
<li>In get*ent() family of routines in libc, use fgetln(3) instead of fgets(3) so that parsing of overly long lines is more correct.
<li>Add options(4).  This manpage describes what all the kernel options do.  If you spot an error in it, notify us immediately.
<li>In strptime(3), make <code>%C</code> influence <code>%y</code> regardless of ordering.
<li>Fix a NULL deference bug in make(1) when using the <code>-j</code> flag.
<li>Fix <code>%m</code>, <code>%I</code>, <code>%S</code>, <code>%y</code>, <code>%C</code>, and <code>%j</code>  conversions in strptime(3).
<li>Merge Kirk McKusick's <a href="faq/faq14.html#14.5">soft update</a> code. This code is still experimental and under a non-commercial license.  It will be included in the next release as an optional compile flag; we cannot ship it enabled by default.
<li>Flesh out the man pages and explain the security problems behind mktemp(3) and other similar functions, plus explain how to handle these problems better.
<li>Fully working KerberosIV encryption in telnet(1) and telnetd(8).
<li>Fixes to a few more games.
<li>CVS version 1.9.26
<li>Fix mktemp(3) problems in two more YP tools.
<li>Fix an interaction bug in inetd(8) due to SIGPIPE blocking; caused a bad effect in rlogind(8) or other inetd(8) children.
<li>Configure cc(1) to pass the <code>-R</code> flag on to ld(1).
<li>Add lynx 2.8 to the system.
<li>Add support for 82553 and 82555B PHY in the fxp driver.
<li>Fix tmpfile(3) to fchown() the file after unlink() (taking umask() into consideration, too).  This is required by standards.
<li>Fix vnd and ccd drivers to work properly with soft updates.
<li>Fix a crash case in compress(1).
<li>Add <code>-s</code> and <code>-c</code> options to last(1).
<li>Add support for <code>-s section</code> and <code>-S subsection</code> to man(1).
<li>Change the configuration of man(1) so that man4 is read much later; this makes it easier to see pages in man8 with similar names.
<li>Fix KerberosIV password changing.
<li>On the sparc, support 128KB lebuffer devices.
<li>On the sparc, print hotfix information at the right place in the dmesg log.
<li>Fix passwd(1) so that YP passwords do not get edited in the local password file.
<li>Significant efforts made at fleshing out the device driver man page tree better.
<li>Upgrade to gcc 2.8.1
<li>Rename 2.2 to 2.3 tree-wide, for the upcoming release.
<li>Improve IPSEC performance.
<li>Add many new machine-dependent man4 man pages.
<li>XFree86 3.3.2 is now in our X11 source tree.
<li>Add another missing ntohl() in ipnat(8).
<li>Use a p_os field to sub-divide operating system emulation capabilities (like for SVR4 binaries).
<li>Spend almost a week finding and fixing minor goobers discovered by gcc 2.8 throughout the source tree.
<li>Fix syslog(3) sockaddr initialization.
<li>Add support for <code>TIOCM*</code> family of ioctl(2) values to the sparc serial driver.
<li>New photurisd(8) that complies with <code>draft-simpson-photuris-18.txt</code>.
<li>Fix a race bug in mkstemp(3) itself that would make mkstemp(3) have occasionally fail strangely.
<li>Fix a few more mktemp(3) problems in f77 libraries, and other assorted GNU software.
<li>Upgrade to gcc 2.8.0
<li>Upgrade to libg++ 2.8.0
<li>Make ping(8) work with very large packet sizes on all types of interfaces.
<li>Correct behaviour <code>-x</code> and <code>-p</code> flags in tar(1) to be traditional.
<li>Remove one of the two copies of math.h in the source tree.
<li>Improve blowfish performance by a factor of 2, and hence increase the rounds by 1 in passwd.conf.
<li>Handle unknown hostnames in mountd(8) better.
<li>Inside the kernel, change struct file's members f_count and f_msgcount to longs, and then add checking for overflows as well.
<li>Add XDM-AUTHORIZATION to X11.
<li>In old gas, move to late resolution of symbols because gcc 2.8 will require this.
<li>Fix a configuration file parsing bug in ipf(8).
<li>In libpcap and tcpdump, use our system ethers(5) parsing routines.
<li>Make <code>netstat -r</code> report better information about non-standard netmasks.
<li>Fix some bugs in the 3c[59]xx device driver.
<li><strong>The 3rd revision of the patch for the mmap() security problem is available, and <a href="errata22.html#mmap">has been placed on top of the 2nd revision</a></strong>.
<li>Add a command to ddb that reports out the extent tables.
<li>Add a clarifying statement to all the Kerberos code that explains how it came to be that this code was released from the USA's crypto stranglehold.
<li>In the RPC code, ensure that __svc_fdsetsize is always manipulated as a bitcount.
<li>Clarify crypt(3) manpage as to how many characters each transform actually considers in its calculation.
<li>Do not permit TCP connections to any of the broadcast addresses.
<li>Do not let a user set their password to "s/key".
<li>Permit the disabling of skey system-wide.
<li>Convert the xdr(3) and rpc(3) manpages to mandoc format.
<li>In mail.local(8), document how to use quotas on a mail spool.
<li>Add <code>-p</code> option to uname(1), to display detailed CPU information.
<li>Support for the ST16650 32-byte FIFO uart.
<li>Do not copy from off the end of an nfs boot mbuf.
<li>Some more repair in the games.
<li>Support <code>-rpath dir</code>, <code>-shared</code>, <code>-soname</code>, <code>--whole-archive</code>, and <code>--no-whole-archive</code> in the old ld used on many of our platforms.
<li>CVS version 1.9.24
<li>For OLF/ELF binaries, remember the OS tag in execve(), so that emulation code can reference it later.
<li>Make the kernel compile properly (with full warnings) under gcc 2.8.
<li><strong>Do not permit a read+write mmap() operation on a read-only file descriptor open on a device.  This is a security problem in OpenBSD 2.2, and is <a href="errata22.html#mmap"> described and fixed with a patch</a></strong>.
<li>Rename /etc/nat.rules to /etc/ipnat.rules.
<li>Add kerberos kauthd(8).
<li>On the i386, move XFree86 aperture driver into the kernel.  The new sysctl(8) variable <code>machdep.allowaperture</code> decides if this driver is active or not.  (This variable can only be modified at high securelevel).
<li>Remove the ftp(1) 'stdout redirection' hack and replace it with a <code>-o filename</code> option (which also understands a filename of "-" to mean stdout).
<li>Pull in all the NetBSD changes to the old version of gas over the last year or so.
<li>Fix two bugs in adduser(8).
<li>Change chflags(2) and fchflags(2) to take a u_int for the second parameter.
<li><a href="https://www.openbsd.org/art/.small/openbsdpower.gif.gif">New fancy OpenBSD logo for your use</a>.
<li>Add XPG4 <code>-r</code> option to du(1).
<li>Support <code>-[width]</code> option in fmt(1).
<li>New quirk for another Archive VIPER scsi tape drive.
<li>Fix another signal handler bug in mail(1).
<li><strong>The mac68k 2.2 CD release had a few problems. These problems have been resolved in the FTP release. <a href="errata22.html#mac68k">For more details...</a></strong>
<li>Make lpd(8) use keepalives so that it can detect dead network printers.
<li>Support the WINBOND pci ethernet cards.
<li>Fixed "%c" in strftime(3).
<li>Various fixes to some of the games, ie. rain, worms, wump.
<li>If <code>link0</code> is set on a loopback interface (ie. lo1) make the address/netmask sets on it make supernets instead of subnets.
<li>Place separate so_ruid and so_euid fields in struct socket, so that in_pcb.c can still do its job, but also so that identd(8) can be fast and return the proper uid.
<li><strong>In the sparc 2.2 release, the SS4/SS5 kernel was not very reliable.  <a href="errata22.html#sparciommu">A simple reliability patch is now available</a>.</strong>
<li>Fix a map corruption bug in ypxfr(8).
<li>Make stty(1) recognize STRIPDISC.
<li>In compress(1), if the st_flags is 0, do not attempt a chflags(2) call.
<li><strong>Make ruserok() significantly more paranoid when parsing the .rhosts file.  This along with another issue is a security problem in OpenBSD 2.2, and is <a href="errata22.html#ruserok"> described and fixed with a patch</a></strong>.
<li>raise IPPORT_USERRESERVED significantly. Random port numbers will now look much more random than they did before.
<li>New <code>-a logdev</code> argument for syslogd(8), useful for setting up additional /dev/log devices in various chroot spaces.
<li>Permit restore(8) to work on a filesystem that has a basic blocksize smaller than the blocksize of the filesystem that was dumped.
<li>Make MIPS ldconfig emulate the <code>-m</code> flag better.
<li>The web pages now have a new section on <a href=security.html> security advisories</a>.
<li>New compat_ibcs2(8) manpage.
<li>Fix rarpd(8) to work properly in the presence of massive routing traffic.
<li>A start at full lint library support.
<li>smtpd(8) integration spiffied up. Everything you need is now in the system.
<li>Emulate that disgusting linux connect() braindamage even better.
<li>Fix some bugs in vacation(1).
<li>Fix /etc/yp/domainname support in ypbind(8).
<li><strong>In the 2.2 release, the sparc scsi driver caused problems for the Sun 4/300 machines. <a href="errata22.html#sparc">Patches are now available</a></strong>.
<li>Add <code>FS_CCD</code> partition type so that the ccd driver can ensure it has the right components.
<li>Add <code>/etc/sysctl.conf</code> which specifies sysctl variables to change at boottime.
<li>Fix a free page count bug in the vm system.
<li>Create two new sysctl options: <code>ddb.panic</code> decides whether the kernel should enter ddb when it panics, and <code>ddb.console</code> controls if it is possible to enter ddb from the console via a hot-key.
<li>Add scan_ffs(8), a very useful tool for reconstructing disks.
<li>Add strptime(3).
<li><strong>Buffer overflow fix in the MIPS ld.so. Replacement binaries for the <a href="errata22.html#pmax">pmax</a> and <a href="errata22.html#arc">arc</a> platforms are available</strong>.
<li>Avoid DNS lookup timing effects in ping -R.
<li>Fix the __{CTOR,DTOR}_LIST__ declarations in c++rt0.c
<li><strong>Two bugs existed in the 2.2 pmax release which all users should be aware of.  <a href="errata22.html#pmax">Patches are now available</a></strong>.
<li><strong>Be more careful about sourcerouted packets, including never forwarding them.  This is a security problem in OpenBSD 2.2, and is <a href="errata22.html#sourceroute"> described and fixed with a patch</a></strong>.
<li>Teach the kernel about newer PCI device types.
<li>Workaround a race condition in syslogd's handling of SIGHUP.
<li>Some man page fixes so that <code>man -k</code> is happier.
<li>Low-memory bug fix in setenv(3).
<li>Self-extending kernel maps in the vm subsystem.
<li>In rc.local, bail on starting cfsd(8) if mountd(8) is not running.
<li>Require commands started from in /etc/rc to be executable -- not just readable.
<li>Glob extensions for XPG4.
<li>Cleanups in wump(6).
<li>Check both old and new shells in rpc.yppasswdd(8).
<li>Add <code>-a</code> flag to which(1).
<li>On binutils platforms, make ldd(1) work on static executables.
<li>IPF 3.2.3.  When you upgrade to this version, you <em>must</em> also upgrade the userland utilities (ipf, ipnat, etc.).  You also need to get the latest MAKEDEV and run "sh MAKEDEV ipl" in /dev to create new device entries.
<li>Fix a race in mkdir(1).
<li>More cdrom ioctls in Linux emulation.
<li>Fix select(2) use in sudo(8) so that it can handle large fd_set sizes.
<li>In termcap databases, map the keyboard backspace key to DEL instead of BS as that is how it really is.
<li>Fix argument handling in expand(1).
<li>If tar(1) extracts as root, preserve uid/gid as is traditional.
<li>Repaired the expansion of the kernel panic string.
<li>Much more complete KerberosIV documentation.
<li>Start at bus_dma support.
<li>Properly error out if yp_match() or yp_first() is asked to lookup long keys.
<li>Groff 1.11a
<li>Properly ignore whitespace between a conversion and %n in *scanf(3).
<li>Import of tzcode1998b and tzdata1998b.
<li>Use new ypwhich(1) flag in ypinit(8) script to get maps from the real master server.
<li>Support <code>-h host</code> flag to ypwhich(1).
<li>pppd 2.3.3
<li>Handle unparseable ulimit specifications as an error, not as the value 0.
<li>ncurses 4.1-980103
<li>In w(1), handle processes that set argv[0] to NULL, by printing p_pcomm.
<li>Make pkg_install(1) feed a -p option to tar.
<li>sudo version 1.5.4.
<li>Merge some slight standardization fixes for *printf(3) from FreeBSD (some unlikely cases get handled better).
<li>Bring gethostent() back to life, even though it is a bad interface.
<li>In disklabel(8), make IDE drive type handling more obvious and intuitive.
<li>Support all kinds of keyboards in pcvt, like pccons does.
<li>Support for FAT32 partitions.
<li>For scsi tape drives, be silent in the presence of ILI errors.
<li>Fix a vnode creation race.
<li>Fix a output error in finger(1).
<li>Do not permit dumping corefiles over symbolic links. (We have wanted this changed for a long time, but it required Lite2 vfs.)
<li>Permit extra / terminators in some path-based system calls.
<li>Fix some problems regarding transfer of secure yp maps.
<li>New rc.conf(7) manpage.
<li>Make sure it is clear that so_linger is in seconds.
<li>Add sysctl net.inet.icmp.bmcastecho to block the smurf problem.
<li>Some fixes to fdisk(8) and disklabel(8).
<li>Workaround a problem that happens if a TCP socket is shutdown(2)'d more than once.
<li>Some more manpage cleanups.
<li>Some slight changes to the PCI device subsystem to make it probe devices nicer (mostly dmesg printing).
<li>Make md5(1), rmd160(1), and sha1(1) use getopt().
<li>Make {f,}chflags(.., -1) return error EINVAL.
<li>Make mmap() return void * instead of caddr_t, and add the MAP_FAILED define required by new standards.
<li>Fix some gzip buf oflows.
<li>Correct an splx botch in the tunnel driver.
<li>Add sysctl ddb.panic_ddb; indicates whether to drop into ddb on a panic.
<li>Swap quit and exit commands in fdisk.
<li>Correct exit code of nohup(1).
<li>lockf() implementation.
<li>Handle DST changeovers automatically in cron.
<li>IBCS2 emulation also requires fcntl() F_FREESP support.
<li>The new KTH KerberosIV integration (and security audit) is almost complete.
<li>If mountd(8) discovers getfh(2) not supported, it now aborts nicely.
<li>Support fcntl() GETLK,SETLK,UNLK variants in SunOS emulation.
<li>Fix a bug in make(1) regarding SYSV style : substitution on null variables.
<li>Check the values of the ftp PORT command even more carefully.
<li>Fail better for over-long usernames.
<li>Change ftp(1) so that tries to use passive mode, and falls back to active mode.  Provide environment variables to fall back.  This is incredibly cool.
<li>Provide workaround for the Cyrix 6x86 COMA bug.  (A workaround for 2.2 is not available).
<li>Implement fcntl() of F_FREESP in SVR4 emulation. Does this belong in ibcs2 also?
<li>Fix Linux accept/recvmsg if kernel is compiled with other compat options.
<li>In numerous programs, avoid fd_set overflows.
<li>Fix MAKEDEV script regarding /dev/fd/* for some architectures.
<li>Fix a kernel bug related to "route change ...".
<li>Support IP_HDRINCL in Linux emulation.
<li>Update the pkg_* tools a bit.
<li>Honour TMPDIR in the locate(8) tools.
<li>Make route(8) non-setuid.
<li>In ftpd, default to RFC non-conforming behaviour for the PORT command, but provide a runtime switch for those who like holes.
<li>Addition of Obtuse smtpd(8) and smtpfwd(8) v2.0.
<li><strong>Due to timing constraints, mac68k X11 binaries did not make it onto the 2.2 CDROM. <a href="errata22.html#mac68k">But it is now available for ftp</a></strong>.
<li>Do not clear the setuid/setgid file mode bits for a call to {,f,l}chmod(-1, -1).
<li>Enable new FreeBSD ppp(8) daemon.  There are now two ppp daemons in the source tree, they have quite different feature sets.
<li><strong>Fixed a panic problem in the i386 apm driver. <a href="errata22.html#i386">A patch is available for 2.2</a></strong>.
<li>Repair a number of retry operation problems in the wdc driver that mostly affected sleeping laptops.
<li>Handle the controlling tty ioctl in linux emulation.
<li>Handle SIOCGIFMETRIC and SIOCGIFMTU in linux emulation.
<li>Handle nanosleep() in linux emulation.
<li>Use recursive vnode locks to solve a page-in panic reported by chuck &amp; chuck.
<li>Handle SIOCGIFHWADDR ioctl in linux emulation.
<li>Handle the cdrom ejecting ioctl in linux emulation.
<li>Correct an XPG violation in stdlib.h.
<li>Fix a problem in -current regarding open() of O_TRUNC and O_SHLOCK.
<li>Fix numerous problems with new KTH kerberos.
<li><strong>A workaround for the Intel P5 F00F lockup problem. <a href="errata22.html#i386">A patch is available for 2.2</a></strong>.
<li>Fix minor numbers for /dev/ch* in the MAKEDEV scripts.
<li>Add a <code>kern.nosuidcoredump</code> sysctl.
<li>Enhance the performance of pwd_mkdb(8) by expanding the db(3) cache based on input filesize.
<li>Use <code>cp -R</code> instead of <code>cp -r</code> for local copies in rcp(1).
<li>Flesh out scsi(8) a tiny bit more.
<li>In linux compat, handle the CDROM ioctl() calls.
<li>Indicate connect direction for tcp sockets in fstat(1).
<li>Fix scsi CDIOCREADSUBCHANNEL.
<li>Prevent ipf/ipnnat configuration changes when securelevel &gt; 1.
<li>Fix an overflow in top(1).
<li>Fix a deadlock on cd9660.
<li>Update to ncurses-4.1-971129
<li><strong>On the i386, handle the nasty problem with distinguishing SVR4 and Linux binaries. <a href="errata22.html#i386">A patch is available for 2.2</a></strong>.
<li>Newer ncr device driver.
<li>Fix SunOS emulation of TIOCGPGRP.
<li>Add some more XPG4.2 *_t types.
<li>Import perl 5.004_04.
<li>Add hosts.equiv(3) and .rhosts(3) man page.
<li>Add asprintf(3) and vasprintf(3).
<li>Fix /etc/rc scripts to require IPF if NAT is requested.
<li>Moving towards KTH kerberos 4-0.9.7.
<li>Fix <code>-amin</code> option in find(1).
<li>Fix arp(8) ethernet address parsing for the illegal cases.
<li>Massive performance optimization of the ccd device (RAID-like striping disk driver).
<li>Work around stupid linux emulation behaviour involving non-blocking connect(2).
<li>Update to ncurses 4.1.
<li>Fix a mget prompting error in ftp(1).
<li>add <code>-t</code> option to disklabel(8).
<li>Some man page cleanups.
<li>Fix a memory leak in the kernel process group manipulation code.
<li>Import of FreeBSD's ppp(8) program.
<li>Update sudo(8).
<li>Fixed bug in 'systat vm' output.
<li>Fix the internals of open(2) when O_TRUNC and either O_SHLOCK or O_EXLOCK are set.  (That was a nasty kernel bug).
<li>Clean /var earlier in the /etc/rc script.
<li><strong>make readlink(1) terminate its buffer correctly. <a href="errata22.html#all">This affects CDROM builds so a patch is available for 2.2</a></strong>.
<li>Make fstat(2) on AF_UNIX socket return proper st_[acm]time field values.
<li>Implement FIONBIO in ibcs2 emulation code.
<li>Consider only the 0177777 bits of the umask(2) value, as documented.
<li>Added mode rangecheck in chmod(2) and fchmod(2).
<li>Fix some Y2K problems in the nroff tmac macros.
<li>Minor logging feature changes in fingerd(8).
<li>in chat(8), replace Mini Getopt from hell with real getopt().
<li>Add <code>SHUT_RD</code>, <code>SHUT_WR</code>, and <code>SHUT_RDWR</code> values for shutdown(2) as specified by XPG4.2.
<li>Make the <code>-Ss</code> flag in rpcgen(1) work right.
<li>Range-check the "how" argument for shutdown(2).
<li>Change various system calls to take void * instead of caddr_t.
<li>Fix a line continuation bug in sed(1).
<li>Add inetd(8) <code>-R rate</code> flag, and crank default rate to 256.
<li>Clear CLOCAL mode in pppd if modem is set but modem_chat is not.
<li>Make the if_de driver support more cards.
<li>Make msync(2) POSIX compliant.
<li>Fix a ONLCR + FLUSHO situation in tty.c
<li>Support -mmin, -amin, and -cmin in find(1).
<li>Support an "object" keyword in config(8).
<li>Make "expr a : /" work.
<li>Make dumpfs(8) report if soft updates are requested by the superblock.
<li>Add getsid(2) system call as mandated by XPG4.2.
<li>Some minor fixes for the libc/db/btree code.
<li>Flesh out compat_freebsd a fair bit more.
<li>Some compat_svr4 fixes.
<li>Update getNAME(8) and fix makewhatis(8) to use it more optimally.
<li>Fix EXTPROC in pty code.
<li>Correct TCP's handling of RST.
<li>Add more things to afterboot(8).
<li>Fix tty suspend during <code>sh -c "less file"</code>.
<li>double MAX_KMAPENT and MAX_KMAP
<li>sendmail 8.8.8
<li>add uu_lock(), uu_unlock() and uu_lockerr() to libutil.
<li>Start named(8) earlier in /etc/rc.
<li>Support execution sections in syslog.conf.
<li>4.4BSD lite2 vfs integration.
<li>usleep(3) returns int, and add useconds_t type as required by XPG4.2
<li>Fixed ps(1) LIM and STAT columns.
<li>makewhatis(8) manpage added.
<li>Fix rpc.rquotad support if the quotas file resides on another filesystem.
<li>Truncate large uid and gid values in ranlib(1), in the same way as this is handled in ar(1).
<li>Document how crypt(3) handles blowfish and MD5 passwords.
<li>Fix some memory leaks in the RPC code.
<li>Fix an as(1) parsing bug relating to the .ascii directive.
<li>Handle C++ and other languages in yacc(1) far better.
<li>Be more careful with getpwent() information inside rcp(1).
<li>Replace kernel printf with Torek's libc printf.
<li>Make disklabel -E deal with multiple partitions which overlap.
<li>If a non-existent user logs in and asks for s/key authentication, fake a proper s/key prompt.
<li>SIGWINCH handling in systat(1).
<li>Add blowfish and cast encryption to IPSEC.
<li>In tftpd(8), permit syslog() to work when running chroot(2)'d.
<li>a buffer underrun in ctags(1).
<li>Make kdump(1) handle the newer emulations.
<li>Add svr4 jioctl() compat interface.
</ul>