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

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

Revision 1.922, Thu Apr 29 14:37:08 2004 UTC (20 years, 1 month ago) by henning
Branch: MAIN
Changes since 1.921: +2 -2 lines

typo; Mattias Hedenskog <mattias@hedenskog.se>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>OpenBSD-current changes</title>
<link rev="made" href="mailto:www@openbsd.org">
<meta name="resource-type" content="document">
<meta name="description" content="OpenBSD-current changes">
<meta name="keywords" content="openbsd,current,changes">
<meta name="distribution" content="global">
<meta name="copyright" content="This document copyright 1996-2004 by OpenBSD.">
</head>

<body bgcolor="#ffffff" text="#000000" link="#23238e">

<a href="index.html"><img alt="[OpenBSD]" height="30" width="141" src="images/smalltitle.gif" border="0"></a>
<p>
<h2><font color="#e00000">Changes made between OpenBSD 3.5 and OpenBSD-current</font></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).  Port
specific changes have also been made, and are sometimes mentioned
in the pages for the specific <a href="plat.html">platforms</a>.

<p>
Changes to the <a href="ports.html">ports</a> collection are documented
<a href="portsplus/index.html">here</a>.

<p>
Note: <font color="#e00000">Problems for which patches exist are marked in red</font>.

<p>
<h3>
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="plus23.html">2.3</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>.
<br>
</h3>

<p>
<h3><font color="#0000e0">We are working on OpenBSD-current.</font></h3><p>
The following list sums up (almost) all the changes made up to April 25.
<p>

<ul>
<!-- ^ 20040426 -->
<li>Since <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=isprint&sektion=3">isprint(3)</a> doesn't consider all whitespace printable, also use <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=isspace&sektion=3">isspace(3)</a> for the binary file test in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=less&sektion=1">less(1)</a>.
<li>Fix float -&gt; quad conversion in libc.
<li>Prettier output from <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=bgpctl&sektion=8">bgpctl(8)</a>.
<li>Permit multiple default routes.
<li>A few more unionfs fixes.
<li>Respect access rights on a union filesystem (PR#745).
<li>Add a few pieces missed in the merge of OpenSSL 0.9.7d.
<li>Add input queue congestion flag support to a few interfaces that can't use the new IF_INPUT_ENQUEUE macro.
<li>Prevent an endless loop in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pf&sektion=4">pf(4)</a> with 'route-to lo0' rules (PR#3736).
<li>Have <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=authpf&sektion=8">authpf(8)</a> run <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pfctl&sektion=8">pfctl(8)</a> to change the rulebase instead of sucking in code from pfctl and doing it itself.
<li>Set MINCLSIZE back to its smaller pre-KAME IPv6 value, so now clusters will be used more often.
<li>In <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pfsync&sektion=4">pfsync(4)</a>, purge only a specific expired state instead of doing an expensive purge all expired states while running at a high <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=spl&sektion=9">spl(9)</a>.
<li>Make sure the local address and <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=bgpd&sektion=8">bgpd(8)</a> neighbor address are of the same address family.
<li>Use '|' instead of ':' as the field separator for <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=spamd&sektion=8">spamd(8)</a> database keys, in preparation for future IPv6 support.
<li>Fix a potential null dereference in the <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=ssl&sektion=3">ssl(3)</a> application utility code.
<!-- sbreserve() sb_mbmax -->
<li>Give <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=routed&sektion=8">routed(8)</a> a local copy of the radix tree code, so it doesn't get (re)broken by net/radix.c changes.
<li>Make <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=ssl&sektion=3">ssl(3)</a> S/MIME work again.
<li>Add 'neighbor cloning' to <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=bgpd&sektion=8">bgpd(8)</a>, allowing a configuration to be specified for a network/prefixlength pair as well as the peer IP address. The configuration is cloned for each new peer in the given address range.
<!-- TCPCTL_DROP XXX -->
<li>Some string cleaning in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=ddb&amp;sektion=4">ddb(4)</a>.
<li>Fix a missing return statement in in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=bgpd&amp;sektion=8">bgpd(8)</a>'s control connection error path.
<li>Add multipath support to the radix tree, allowing multiple routes to a single destination (though it won't actually get you anywhere just yet). From KAME.
<li>Send <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pfsync&amp;sektion=4">pfsync(4)</a> packets for IPv6 protocols other than TCP, UDP and ICMP.
<li>Sync kernel radix tree code with 4.4BSD-Lite2 via NetBSD.
<li>Don't add a PF_GENERATED tag to <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pf&amp;sektion=4">pf(4)</a> synproxy generated packets for the second handshake, so they can match rules (and create state) on another interface.
<!-- ^ 20040425 -->
<li>Add a 'probability' modifier for <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pf&amp;sektion=4">pf(4)</a> rules, setting the likelihood with which a rule will trigger.
<li>Greatly simplify <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=inetd&amp;sektion=8">inetd(8)</a>'s hostname/address lookup code.
<li>Since OpenBSD has <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=openpty&amp;sektion=3">openpty(3)</a>, we may as well have <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=telnetd&amp;sektion=8">telnetd(8)</a> use it.
<li>Initial support for IPv6 transport in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=bgpd&amp;sektion=8">bgpd(8)</a>.
<li>Add <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=spamd&amp;sektion=8">spamd(8)</a> config files to <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=changelist&amp;sektion=5">changelist(5)</a> and /etc/mtree/special.
<li>Some additional TCP option length paranoia in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pf&amp;sektion=4">pf(4)</a>'s normaliser.
<li>Have <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=netstat&amp;sektion=1">netstat(1)</a> display the new tcps.rcvacktooold statistic counter.
<li>Sync &lt;tree.h&gt; with Niels Provos' version to get rid of a compiler warning for <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=RB_NEXT&amp;sektion=3">RB_NEXT(3)</a>.
<!-- ^ 20040424 -->
<li>Port the gcc2 bounds checking support to gcc3, enabled with -Wbounded (see <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=gcc-local&amp;sektion=1">gcc-local(1)</a>).
<li>Add some CMSG_ macros to get proper alignment in portalfs. From NetBSD.
<li>In <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=isakmpd&amp;sektion=8">isakmpd(8)</a>, make sure the KEY_LENGTH attribute is present when checking AES proposals as this is required when acting as responder to SafeNet peers.
<li>Silence <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=getopt&amp;sektion=3">getopt(3)</a> errors in the privileged <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=tcpdump&amp;sektion=8">tcpdump(8)</a> process.
<li>Don't display rubbish on the first output line from <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=vmstat&amp;sektion=8">vmstat(8)</a>, wait for the stats to stabilise.
<!-- ^ 20040423 -->
<li>Fix the calculation of a raw IPv6 UDP packet's checksum.
<li>For <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=dhcpd&amp;sektion=8">dhcpd(8)</a>'s ping probes, just use the pid for the ICMP id like <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=ping&amp;sektion=8">ping(8)</a> does, instead of some architecture-dependent wierdness.
<!-- ^ 20040422 -->
<li>Merge in new Omron LUNA port (luna88k), based on OpenBSD/mvme88k, NetBSD/luna68k and CMU Mach.
<li>As with <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=dhcrelay&amp;sektion=8">dhcrelay(8)</a>, set a write filter and lock the <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=bpf&amp;sektion=4">bpf(4)</a> descriptor before privilege drop in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=dhcpd&amp;sektion=8">dhcpd(8)</a>.
<!-- ^ 20040421 -->
<li>Change <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pw_copy&amp;sektion=3">pw_copy(3)</a> to take the old entry as an additional parameter, allowing both a change of username and a check that the file hasn't changed since it was last read (fixes PR#3698). Adapted from FreeBSD.
<li>Set a write filter and lock <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=dhcrelay&amp;sektion=8">dhcrelay(8)</a>'s <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=bpf&amp;sektion=4">bpf(4)</a> file descriptor before dropping privileges.
<li>Drop the port-changing options in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=dhcrelay&amp;sektion=8">dhcrelay(8)</a> too, always use standard ports.
<li>New TCP stat counter tcps.rcvacktooold, counts the number of times we drop very old ACK packets when the sequence number isn't exactly right.
<li>Set the km_page allocator's low watermark to a value that allows the system to boot.
<li>Switch the build over to the new, improved <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=dhcpd&amp;sektion=8">dhcpd(8)</a> and <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=dhcrelay&amp;sektion=8">dhcrelay(8)</a>.
<li>Remove the -p (listen port) option of new <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=dhcpd&amp;sektion=8">dhcpd(8)</a>.
<!-- ^ 20040420 -->
<li>Bump the default kern.maxclusters to a value high enough to deter all but the most determined tweakers.
<li>Remove the GATEWAY <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=config&amp;sektion=8">config(8)</a> option now that both IP forwarding and mbuf cluster allocation are configurable using <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=sysctl&amp;sektion=3">sysctl(3)</a>.
<li>Introduce a new <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=sysctl&amp;sektion=3">sysctl(3)</a> kern.maxclusters controlling (oddly enough) the maximum number of mbuf clusters. This deprecates the much-abused NMBCLUSTERS <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=config&amp;sektion=8">config(8)</a> option.
<li>Use the km_page allocator as the backend for the mbuf and mbuf cluster pools.
<li>New km_page <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pool&amp;sektion=9">pool(9)</a> allocator running in an interrupt-safe kernel thread (kmthread).
<li>Resource starvation checks for sockets:
<ul>
  <li>Check the level of <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=mbuf&amp;sektion=9">mbuf(9)</a> cluster utilisation when doing an accepting a listen socket, and fail if usage is greater than 95% of the hard limit.
  <li>New API sbcheckreserve() returns ENOBUFS if more than 50% of <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=mbuf&amp;sektion=9">mbuf(9)</a> clusters are in use
  <li>Use sbcheckreserve() when accepting a connection, and on <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=setsockopt&amp;sektion=2">setsockopt(2)</a> for SO_SNDBUF and SND_RCVBUF, and allocate minimal buffers in in low-memory situations.
</ul>
<li>Stop propolice tripping an assert in gcc3.
<li>Make <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=spamd&amp;sektion=8">spamd(8)</a> display an error if it can't open the /var/db/spamd database for writing, and return a proper error code.
<li>Cure the angst in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=user&amp;sektion=8">user(8)</a> caused by the non-existence of the /nonexistent directory.
<li>Correct new <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=dhcpd&amp;sektion=8">dhcpd(8)</a>'s handling of very long lease times (PR#2888).
<li>Fix a propolice bug in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=gcc&amp;sektion=1">gcc(1)</a> and unbreak MySQL (mysql bug id 1442).
<!-- ^ 20040419 -->
<li>Have <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=ssh&amp;sektion=1">ssh(1)</a> perform strict permission checks on ~/.ssh/config files and abort unless they're correct.
<li>If kernel <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=ipsec&amp;sektion=4">ipsec(4)</a> and/or <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=ipcomp&amp;sektion=4">ipcomp(4)</a> processing is disabled by <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=sysctl&amp;sektion=3">sysctl(3)</a>, pass any packets through as raw IP to give userland a chance to handle them.
<li>Sync the <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=em&amp;sektion=4">em(4)</a> driver with FreeBSD.
<li>Tidy up <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=usb&amp;sektion=4">usb(4)</a> kernel configs in line with recent i386 changes.
<li>Restore <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=siop&amp;sektion=4">siop(4)</a>'s ability to detect SCSI options after the recent probe changes.
<li>Since <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=dhcpd&amp;sektion=8">dhcpd(8)</a> can now be invoked legitimately without an interface, don't abort when the user doesn't give any options.
<!-- ^ 20040418 -->
<li>New _tftpd user and group.
<li>Make sure <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=m_pullup2&amp;sektion=9">m_pullup2(9)</a> copies the M_CLUSTER flag when it creates a new mbuf (PR#3740).
<li>Have <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pf&amp;sektion=4">pf(4)</a> block unconditionally when the input queue congestion flag is set, instead of doing CPU-intensive rule tests.
<li>If an interface input queue becomes full, set a new congestion flag in the queue structure. Since a full queue usually indicates processing overload, this flag can be used to allow other subsystems to cooperate in easing the situation.
<!-- ^ 20040417 -->
<li>Make <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=netstat&amp;sektion=1">netstat(1)</a> show the number of mbuf clusters in use rather than the number of pages.
<li>Fix a ufs directory-related panic (PR#3672). Fix from FreeBSD.
<li>Have the <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=cvs&amp;sektion=1">cvs(1)</a> server check for attempts by a client to walk up the directory tree illegally.
<li>Perform some additional checks on the paths fed to the <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=cvs&amp;sektion=1">cvs(1)</a> client by the remote server.
<li>Some address family agnosticism in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=bgpd&amp;sektion=8">bgpd(8)</a>.
<li>Let <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=bgpctl&amp;sektion=8">bgpctl(8)</a> show IPv6 peer addresses in neighbour view.
<!-- ^ 20040416 -->
<li>Now that <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=dhcpd&amp;sektion=8">dhcpd(8)</a> doesn't need to continuously reopen the leases file for writing, have it <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=chroot&amp;sektion=2">chroot(2)</a> to /var/empty and drop privileges after starting up.
<li>Only open the <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=dhcpd&amp;sektion=8">dhcpd(8)</a> leases file once instead of every time it needs to be written.
<li>Set up new <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=dhcpd&amp;sektion=8">dhcpd(8)</a>'s <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=bpf&amp;sektion=4">bpf(4)</a> listen filter for the right port.
<li>Have <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=mopd&amp;sektion=8">mopd(8)</a> do a <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=chroot&amp;sektion=2">chroot(2)</a> to /var/empty and drop its privileges.
<li>Massive <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=style&amp;sektion=9">style(9)</a> application to <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=isakmpd&amp;sektion=8">isakmpd(8)</a>.
<li>Stop another instance of <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=syslogd&amp;sektion=8">syslogd(8)</a> from unlinking a socket that's in use.
<li>TCP packets are now allowed to have IPv4 options.
<li>Begin work of separating binary emulation type from the executable file format.
<!-- ^ 20040415 -->
<li>New user and group _mopd, for some obscure reason related to <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=mopd&amp;sektion=8">mopd(8)</a>.
<li>Enable all supported USB devices in the i386 GENERIC config.
<li>Pass the jobname to <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=lpd&amp;sektion=8">lpd(8)</a>'s input filter via the -j option, some filters need it.
<li>When the syncache aborts a connection, don't set an ACK in the RST packet.
<li>Add entries for all supported USB devices to the GENERIC config on sparc64.
<li>In <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=crypto&amp;sektion=9">crypto(9)</a>, add cases for sha2 algorithms in swcr_authcompute().
<li>Fix <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=systat&amp;sektion=1">systat(1)</a> screen updates after resuming from a ^Z.
<li>Make <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pf&amp;sektion=4">pf(4)</a> antispoof rules work with dynamic interfaces.
<li>Match on all characters of the interface name in the <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pfctl&amp;sektion=8">pfctl(8)</a> parser.
<li>Make sure privsep <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=tcpdump&amp;sektion=8">tcpdump(8)</a> transitions into STATE_RUN even when writing to stdout with '-w -'.
<li>Implement AI_NUMERICSERV (from RFC3493) in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=getaddrinfo&amp;sektion=3">getaddrinfo(3)</a>.
<li>Since the UDP checksum in mandatory in IPv6, drop any input packets where it's absent and make sure it's set even for error output.
<li><a href="http://www.openbsd.org/cgi-bin/man.cgi?query=dhcpd&amp;sektion=8">dhcpd(8)</a> cleanup:
<ul>
  <li>Use <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=getopt&amp;sektion=3">getopt(3)</a>.
  <li>Remove pidfile code.
  <li>Steal some already-sanitised code from <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=dhclient&amp;sektion=8">dhclient(8)</a>.
  <li>Remove code to handle network access methods we don't care about, only <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=bpf&amp;sektion=4">bpf(4)</a> is necessary here.
</ul>
<!-- ^ 20040414 -->
<li>Break out <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=dhcpd&amp;sektion=8">dhcpd(8)</a> into usr.sbin/dhcpd and begin The Process.
<li>Have <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=lpd&amp;sektion=8">lpd(8)</a> treat 'o' format files (PostScript) from MacOS 10.1 the same as 'l', not 'f', since PostScript can contain binary data. From FreeBSD.
<li>Parse and handle RFC 2858 Multiprotocol Extensions in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=bgpd&amp;sektion=8">bgpd(8)</a>.
<li>Allow <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=restore&amp;sektion=8">restore(8)</a> to recover files larger than 4GB by using size_t instead of long.
<li>Have <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=dhclient&amp;sektion=8">dhclient(8)</a> retry up to ten times after a second's delay for interfaces showing no link.
<li>More careful IKE payload parsing in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=tcpdump&amp;sektion=8">tcpdump(8)</a>.
<li>New _PATH_DEVFD and _PATH_VAREMPTY constants in &lt;paths.h&gt;.
<li>Fix a null deref in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=syslogd&amp;sektion=8">syslogd(8)</a>.
<li>Have new <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=dhcrelay&amp;sektion=8">dhcrelay(8)</a> do a <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=chroot&amp;sektion=2">chroot(2)</a> to /var/empty and drop privileges.
<li>In libpthread, update curthread immediately after a thread switch.
<li>New _dhcp user and group for, funnily enough, the DHCP programs.
<!-- ^ 20040413 -->
<li>Refactor the installer's network initialisation code into IPv4-specific sections in preparation for IPv6.
<li>Start surgery on <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=dhcrelay&amp;sektion=8">dhcrelay(8)</a>:
<ul>
  <li>Move to /usr/src/usr.sbin/dhcrelay.
  <li>Kill pidfile code.
  <li>Use <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=daemon&amp;sektion=3">daemon(3)</a> and <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=getopt&amp;sektion=3">getopt(3)</a> instead of DIY.
</ul>
<li>Huge cleanup of <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=mopd&amp;sektion=8">mopd(8)</a>.
<li>Implement a rate limit for TCP ACKs of 100pps, and use this more general mechanism for in-window SYN handling too.
<li>Safely handle aborts in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=malloc&amp;sektion=3">malloc(3)</a> etc. without tripping the recursive call handler by mistake.
<li>Fix reliability problems with <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=bge&amp;sektion=4">bge(4)</a> and <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=gdt&amp;sektion=4">gdt(4)</a>.
<!-- ^ 20040412 -->
<li>Fix an accidental busy-wait in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=sensorsd&amp;sektion=8">sensorsd(8)</a>.
<li>Increase the maximum number of <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pty&amp;sektion=4">pty(4)</a> devices to 992. See the <a href="http://www.openbsd.org/faq/upgrade-minifaq.html">Upgrading Mini-FAQ</a> item 3.5.1 for upgrade instructions.
<li>Fix a typo in kern/tty_pty.c when generating <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pty&amp;sektion=4">pty(4)</a> device filenames, soon to be exposed by changes to pty.
<li>Compatiblity fixes to <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=mpt&amp;sektion=4">mpt(4)</a>.
<!-- ^ 20040411 -->
<li>Change <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=snprintf&amp;sektion=3">snprintf(3)</a>'s handling with size==0, in line with a <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=vsnprintf&amp;sektion=3">vsnprintf(3)</a> change (rev. 1.5) from years ago.
<li>Fix a segmentation fault in Xlib when a .Xauthority file contains IPv6 XDM-AUTHORIZATION-1 data (NetBSD PR xsrc/25098).
<li>Rearrange the GENERIC config file so clonable interfaces are together, and without the now-unnecessary device count.
<!-- ^ 20040410 -->
<li>When libpthread is <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=poll&amp;sektion=2">poll(2)</a>ing for read- or writability of an fd on behalf of a thread, check the ERR, HUP and NVAL flags as well as the read or write flags.
<li>Sync <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=uudecode&amp;sektion=1">uudecode(1)</a> with FreeBSD, including base64 support.
<li>Stop a number of network interfaces moaning about a failed <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=mbuf&amp;sektion=9">mbuf(9)</a> allocations, the complaint uses mbufs and just makes things worse.
<li>Pass SIGINT and SIGQUIT through to <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=syslogd&amp;sektion=8">syslogd(8)</a>'s privsep child.
<li>Move the <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pf&amp;sektion=4">pf(4)</a> altq, OS fingerprint and table <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pool&amp;sektion=9">pool(9)</a>s from the default (interrupt context) kmem allocator to the much-larger nointr allocator.
<li>If <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=newsyslog.conf&amp;sektion=5">newsyslog.conf(5)</a> doesn't list a user or group, create new files with the uid or gid from the existing file.
<li>Force <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=cvs&amp;sektion=1">cvs(1)</a> to use the libc <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=getopt&amp;sektion=3">getopt(3)</a> implementation instead of its own.
<li>Have <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pfctl&amp;sektion=8">pfctl(8)</a> check that the file it's trying to open isn't really a directory.
<!-- ^ 20040409 -->
<li>More <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=gcc&amp;sektion=1">gcc(1)</a> optimiser fixes for mvme88k
<li>Swap the last two parameters to <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=TAILQ_FOREACH_REVERSE&amp;sektion=3">TAILQ_FOREACH_REVERSE(3)</a> in line with FreeBSD and NetBSD.
<li>Use a more efficient <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=realloc&amp;sektion=3">realloc(3)</a> size when displaying long lines in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=less&amp;sektion=1">less(1)</a>. Speeds things up when, for example, your system crashes in the middle of a build leaving a pile of linefeedless binary crap in the typescript file.
<li>After going to the trouble of saving errno before it gets overwritten, use the saved value in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pflogd&amp;sektion=8">pflogd(8)</a>'s error output.
<li>Don't try to close invalid file descriptors in the <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=tcpdump&amp;sektion=8">tcpdump(8)</a> privsep code.
<li>Have <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=isakmpd&amp;sektion=8">isakmpd(8)</a> set the timezone before privsep so the child has the right zone settings.
<li>Within <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=dhclient&amp;sektion=8">dhclient(8)</a>'s new lease file naming scheme, allow for the -l filename override.
<li>On sparc and sparc64, don't compare a RAMDISK kernel's root filesystem time with the system time, they're unlikely to have much in common.
<!-- ^ 20040408 -->
<li>Zero out the key data pointer for unknown <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=isakmpd&amp;sektion=8">isakmpd(8)</a> key types.
<li>Merge in Perl 5.8.3 and <!-- 20040408 --> OpenSSL 0.9.7d. No lame new licenses for a change.
<li>Now that <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=dhclient&amp;sektion=8">dhclient(8)</a> needs an instance per interface, having a single lease file won't do so use /var/db/dhclient.leases.&lt;ifname&gt;.
<li>Make sure the list dereference when deleting all SAs in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=isakmpd&amp;sektion=8">isakmpd(8)</a> comes before the delete operation that <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=free&amp;sektion=3">free(3)</a>s the list node.
<li>Fix /etc/<a href="http://www.openbsd.org/cgi-bin/man.cgi?query=rc.local&amp;sektion=8">rc.local(8)</a>'s handling of ntpd_flags.
<li>Unbreak pxeboot(<a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pxeboot&amp;sektion=8&amp;arch=i386">8/i386</a>, <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pxeboot&amp;sektion=8&amp;arch=amd64">8/amd64</a>) build under gcc3.
<li>Allow <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=dhclient&amp;sektion=8">dhclient(8)</a> to work on more than the first physical interface found.
<li>In several programs, fix <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=getopt&amp;sektion=3">getopt(3)</a> calls containing option letters for which there's no corresponding case handler.
<li>ISO C function declarations for <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=make&amp;sektion=1">make(1)</a>.
<li>Fix a sizeof(pointer) bug in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=tcpdump&amp;sektion=8">tcpdump(8)</a>'s IPv6 options parser.
<li>Fix some misplaced braces in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=route&amp;sektion=8">route(8)</a>, making 'route add' a bit more -q.
<li>Enable /dev/<a href="http://www.openbsd.org/cgi-bin/man.cgi?query=crypto&amp;sektion=4">crypto(4)</a> and <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=hifn&amp;sektion=4">hifn(4)</a> on cats machines.
<!-- ^ 20040407 -->
<li>Make <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=newsyslog&amp;sektion=8">newsyslog(8)</a>'s file renaming and copying operations set the same permissions in all cases.
<li>Fix double call of the <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=ktrace&amp;sektion=2">ktrace(2)</a> signal trap handler. <!-- XXX -->
<li>Add missing prototypes (in &lt;pwd.h&gt;) for <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=bcrypt&amp;sektion=3">bcrypt(3)</a> and <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=md5crypt&amp;sektion=3">md5crypt(3)</a>.
<li>Fix some <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=gcc&amp;sektion=1">gcc(1)</a> optimisation bugs on mvme88k.
<li>Fix a sizeof(wrongthing) bug in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=afsd&amp;sektion=8">afsd(8)</a> that was breaking 64-bit machines.
<li>Have <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=tcpdump&amp;sektion=8">tcpdump(8)</a> print IKE DELETE payload contents.
<li>Remove the installer's special-case upgrade of the OpenSSL /usr/include symlinks.
<li>Fix a double-free in libpthread (PR#3730).
<li>Reenable libm compiler optimisation on sparc64, since it works properly with gcc3.
<!-- ^ 20040406 -->
<li><a href="http://www.openbsd.org/cgi-bin/man.cgi?query=sscanf&amp;sektion=3">sscanf(3)</a> -&gt; <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=strtol&amp;sektion=3">strtol(3)</a> in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=newsyslog&amp;sektion=8">newsyslog(8)</a>.
<li>Don't initialise <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=ncurses&amp;sektion=3">ncurses(3)</a> until after options processing in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=backgammon&amp;sektion=6">backgammon(6)</a>.
<li>Plug the new-and-improved <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=dhclient&amp;sektion=8">dhclient(8)</a> into the standard build.
<li>Fix a sizeof(pointer) bugs in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=afsd&amp;sektion=8">afsd(8)</a>, <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=sup&amp;sektion=1">sup(1)</a> and <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=visudo&amp;sektion=8">visudo(8)</a>.
<li>Make <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pf&amp;sektion=4">pf(4)</a>'s cache of m_tag_get() <!-- NOMAN --> results actually work.
<li>Check for <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=fdopen&amp;sektion=3">fdopen(3)</a> failure in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=vacation&amp;sektion=1">vacation(1)</a>.
<li>3.5 -&gt; 3.5-current.
<li>Change <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=wskbd&amp;sektion=4">wskbd(4)</a>'s AltGr key handling so shift-altgr-other has the same effect as altgr-shift-other.
<li>Never allow <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pf&amp;sektion=4">pf(4)</a> states propogated via <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pfsync&amp;sektion=4">pfsync(4)</a> to overwrite newer states held locally. If an overwrite is attempted, broadcast the newer version to the network to speed resynchronisation.
<li>Under Linux emulation, pass <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=madvise&amp;sektion=2">madvise(2)</a> straight through to the native syscall.
<!-- ^ 20040405 -->
<li>On receipt of an in-window TCP SYN (Stevens vol.II p.964), return a 100pps rate-limited ACK instead of blindly RST'ing the connection.
<li>Don't try to recreate the <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=xfs&amp;sektion=1">xfs(1)</a> logfile after dropping privileges.
<li>Don't abort <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=xfs&amp;sektion=1">xfs(1)</a> gracelessly when handling an unimplemented protocol request.
<!-- ^ 20040404 -->
<li>Many manual page fixes.
<li>In a number of programs, don't close files that are known to be not open.
<li>Fix a missing initialisation in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=tcpdump&amp;sektion=8">tcpdump(8)</a>'s privsep code.
<li>Make <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=spamd&amp;sektion=8">spamd(8)</a>'s -v logging option do something useful.
<!-- ^ 20040403 -->
<li>Fix line breaks in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=spamd&amp;sektion=8">spamd(8)</a>'s log output.
<li>Allow non-GNU ANSI compilers (e.g. TenDRA) to build again by changing 'static inline' to 'static __inline'.
<li>Don't close descriptors we know aren't open in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=syslogd&amp;sektion=8">syslogd(8)</a>.
<li>Drop arc4random_8() api from the kernel.
<li>Change <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=rfork&amp;sektion=2">rfork(2)</a> so the RFMEM flag gives complete vmspace sharing including the stack, in line with other implementations.
<li>Add --line-buffered option to <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=grep&amp;sektion=1">grep(1)</a> etc.
<li>Remove some unbounded recursions in the libc regex engine, found with certain expressions containing backreferences.
<li>Fix <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=ls&amp;sektion=1">ls(1)</a>' column alignment when using the -h option.
<li>New <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=axe&amp;sektion=4">axe(4)</a> USB Ethernet driver.
<!-- ^ 20040402 -->
<li>Fix an off-by-one in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=procmap&amp;sektion=1">procmap(1)</a>.
<li>Better bounds checking in the ramdisk's strategy() routine.
<li>Limit the trust between local and remote instances of the <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=rcp&amp;sektion=1">rcp(1)</a> and <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=scp&amp;sektion=1">scp(1)</a> programs.
<li>Change <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=netstat&amp;sektion=1">netstat(1)</a>'s -p option so that, when used without -s, it shows a list of sockets for the given protocol.
<li>Let <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=rcmdsh&amp;sektion=3">rcmdsh(3)</a> work on hosts without an IPv4 address.
<li>Initialise the <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=kqueue&amp;sektion=2">kqueue(2)</a> subsystem in kernel main() instead of on first use.
<!-- ^ 20040401 -->
<li>Add IPv6 support to <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=openssl&amp;sektion=1">openssl(1)</a>'s s_client command, complete with the usual '-4' and '-6' switches.
<li>Reorder checks in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=ssh&amp;sektion=1">ssh(1)</a> so that the IP options check isn't skipped just because UseDNS=no.
<li>Make /usr/src/Makefile's cross-tools target work again.
<li>Have <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=inetd&amp;sektion=8">inetd(8)</a> properly use the exec'd program's basename as argv[0] if no arguments are specified.
<li>Fix includes search order in GNU <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=ld&amp;sektion=1">ld(1)</a> to help cross-ld builds.
<li>Don't byte-swap a variable we'll need later in its original order in GNU <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=ld&amp;sektion=1">ld(1)</a>.
<li>On an msdos filesystem with long filenames support enabled, fix some false-positive name matches when an integer multiple of 13 characters match. From NetBSD.
<li>Some portability fixups in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=isakmpd&amp;sektion=8">isakmpd(8)</a>.
<li>tcpmd5 changes for <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=bgpd&amp;sektion=8">bgpd(8)</a>:
<ul>
  <li>Allow either the source or destination to be a wildcard in SA lookups (netinet/ip_ipsp.c:gettdbbysrcdst()).
  <li>Add support for the wildcard to pfkeyv2.
  <li>Use the new pfkeyv2 wildcard support in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=bgpd&amp;sektion=8">bgpd(8)</a> and remove the local address requirement for md5sig.
</ul>
<!-- ^ 20040331 -->
<li>Unbreak libc's regex engine compilation with -DREDEBUG.
<li>Change /etc/<a href="http://www.openbsd.org/cgi-bin/man.cgi?query=rc&amp;sektion=8">rc(8)</a> so that a <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=spamd&amp;sektion=8">spamd(8)</a> banner (configured via $spamd_flags) may contain spaces (PR#3720).
<li>Teach <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pax&amp;sektion=1">pax(1)</a> how to expand GNU tar long links. From NetBSD.
<li>Change <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=systrace&amp;sektion=1">systrace(1)</a>'s handling of filename-too-long errors so it just fails the syscall instead of stopping the process. Fixes PR#3140.
<li>Some ELF name translation fixes in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=nm&amp;sektion=1">nm(1)</a>.
<li>Add /etc/rc.conf.local to /etc/mtree/special.
<li>Lots more activity on the SMP branch.
<li>Wrap <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pkg_add&amp;sektion=1">pkg_add(1)</a> installation operations in <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=perl&amp;sektion=1">perl(1)</a> eval{} blocks so it's possible to at least register what did work.
<li>Unknown entry types in a packing list now result in an error.
<!-- ^ 20040330 -->
</ul>
<p>

This list mentions mostly platform-independent changes.  For a list of changes
made in a particular platform, please check the page for that platform.  If you
find them not listed there, the changes are either (1) not being documented or
(2) are documented here.<br><br>

<hr>
<p>
<h3>
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="plus23.html">2.3</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>.
<br>
</h3>

<hr>
<a href="index.html"><img height=24 width=24 src="back.gif" border=0 alt="OpenBSD"></a> 
<a href="mailto:www@openbsd.org">www@openbsd.org</a>
<br><small>$OpenBSD: plus.html,v 1.922 2004/04/29 14:37:08 henning Exp $</small>

</body>
</html>