Changes made between OpenBSD 3.3 and OpenBSD-current
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 platforms.
Changes to the ports collection are documented
here.
Note: Problems for which patches exist are marked in red.
We are working on OpenBSD-current.
The following list sums up (almost) all the changes made up to June 24.
- Add i386 a.out emulation for dynamic binaries.
- Fix grep(1)'s -w option.
- Make grep(1)'s -E, -F and -G options override the program name, and mutually exclusive.
- Make fgrep functionality of grep(1) work.
- Unbreak POSIX:: functions under Perl 5.8.0.
- Make pf(4)'s route-to option work for IPv6 link-local addresses.
- Reintroduce some routing socket code (lost in a previous update) that could cause less-specific routes to be updated by mistake.
- Lots of int -> u_int in ssh(1).
- IPv6 neighbour discovery updates from KAME.
- Avoid using regexes completely for simple string searches in grep(1).
- Improve the compress(1)-based zmore(1) script and install instead of the GNU gzip version.
- Teach kdump(1) about many more dev/, net*/ and crypto/ ioctls.
- Remove the unnecessary (and broken) printf builtin from csh(1).
- Don't use getopt(3) in printf(1) since this causes formats beginning with a hyphen to be interpreted as flags.
- Add a simple zmore(1) script using compress(1).
- Add pcmcia(4) and wi(4) support for sparc.
- Install a host route for a point-to-point interface even if a connected net route via a broadcast interface exists (NetBSD PR 21903.)
- Check for nfds<0 in poll(2).
- Better temp file handling in XFree's gccmakedep(1).
- Temporarily work around a tables-related use-after-free in pf(4).
- Improve grep(1)'s detection of binary files, and add/fix a number of compatibility options.
- Improvements to the installer's handling of network settings when upgrading.
- Remove ypserv(8) files without copyright information.
- Install freegrep as {e,f,z,ze,zf}grep as well as grep(1).
- Upgrade (non-GNU) grep(1) to freegrep 0.16.
- Remove GNU grep and (most of) GNU gzip from the tree. BSD-licensed alternatives do the same jobs.
- Reenable the ld.so(1) library load order randomiser, with fixes.
- Make user filename selection in the installer more robust.
- fflush(3) stdout when doing continuous queue monitoring with pfctl(8).
- Add fine-grained counters for pf(4) state entries, allowing for traffic reporting via pfsync(4).
- Add per-process exec/fork/exit hooks, use them the fix up brk(2) under Linux emulation, and so fix Java.
- Add MSS support to pf(4)'s synproxy.
- Initialise properly before calling getusershell(3) in su(1).
- More helpful pf(4) BAD ICMP debug message.
- Make isakmpd(8) print some log messages when giving up on a response to the last message.
- Use _PW_NAME_LEN instead of a hard-coded 8 char username limit in top(1).
- Remove roll-your-own string functions from top(1).
- Have comsat(8) use fseeko(3) instead of fseek().
- rpcgen(1) now generates much prettier ANSI C code.
- Back out the recent xdm(1) '-nolisten tcp' change.
- Plug some memory leaks in popa3d(8) and systrace(1).
- Strip the newline from user input when requesting a continuation filename in restore(8) (PR#3324.)
- Fix a bug that condemned fortune(6) to be always inoffensive.
- Have bpf(4) return ENOBUFS on malloc(9) failure instead of causing a panic (PR#2235,PR#2236,PR#2640.)
- Make m4(1)'s handling of builtin and user macros more consistent, and allow pushdef to work for builtins.
- xdm(1) now passes '-nolisten tcp' to Xserver(1) by default for local display :0.
- Re-enable UDMA mode 5 for HPT370A pciide(4) devices, now that timing and interrupt problems are fixed.
- Fix a sizeof oops that broke less(1)'s -N option.
- hme(4) now advertises its VLAN capability.
- Properly display no-route addresses when expanding label macros in pfctl(8).
- Back out the recent ssh(1) smartcard key fix, it violates PKCS#1.
- When the expansion of the $srcaddr or $dstaddr label macro is a table, have pfctl(8) print the table name instead of garbage.
- Unbreak vmstat(8) on diskless machines (PR#3322.)
- Relax rtadvd.conf(5) syntax, removing the need for the addrs option.
- Use getifaddrs(3) in amd(8), fixing the 'wire' location selector.
- Return the correct error message if the user tries to kill a non-existent process from top(1).
- Add a few missing dead-key composition entries (PR#3295, with an entry for cedilla as well as for double-quote.)
- Avoid a null deref in cnkqfilter() (/dev/console kqueue(2) crash, PR#3317.)
- Fix a logic bug in mtree(8) that was making -U return an error just like -u.
- Make ssh-add(1) redisplay the key comment when prompting after a bad passphrase.
- Fix "bad decrypted len" errors in ssh(1) when using smartcard-stored public keys (OpenSSH bug 592.)
- Updates for systrace(1), support freeing of old policies and escaping of special characters.
- Better byte-swapping behaviour in dc(4), fixing mac address reads on big-endian architectures.
- Make dhclient-script(8) fix up resolv.conf(5)'s permissions.
- Stop isakmpd(8) losing ID information when rekeying.
- Add new '-c class' option to encrypt(1), which will use the login class to select the password cipher.
- Fix kqueue(2) on ptys (PR#3209.)
- In user(8), only check login class validity when the login class is set.
- Fix some sizeof oopses in top(1).
- Allocate cleared memory for isakmpd(8) payload buffers.
- Fix pf(4) TCP state checks when using a combination of asymmetric window scaling and SACK.
[Applied to stable]
- Add __LP64__ and _LP64 cpp(1) predefined macros for alpha and sparc.
- Sync em(4) with FreeBSD updates and enable on sparc64.
- Add -0 (zero) flag to pax(1) allowing the filename separator to be a NUL instead of a newline (PR#3310.)
- In xargs(1), don't close the descriptor we just created with dup2(2).
- security(8) allows dots in usernames consistent with user(8) changes.
- pfctl(8)'s show anchor command now respects the 'quiet' flag.
- Make dhclient-script(8) respect symlinks.
- Remove obsolete Rijndael code from libcrypto.
- Support more Intel Fast Ethernet and Gigabit Ethernet cards.
- Use real varargs in top(1) instead of hacking it.
- ssh(1) and ssh-agent(1) now use the key label from a PKCS#12 cert if one is available, instead of just showing 'smartcard key.'
- Stop security(8) complaining about usernames ending in '$'.
- Speed up m4(1) traced macros, helps with recent GNU autoconf.
- Make queues work on tun(4) interfaces. Not recommended (should assign to tun, then queue on physical interface) but sometimes necessary, e.g. for pppoe(8).
- In pfctl(8) don't apply a netmask to an interface name.
[Applied to stable]
- Allow the kernel to compile with NFS but without FIFO.
- POSIXify xargs(1), mostly from FreeBSD.
- Much ansification and de-registering.
- Add NAT-T dump support to tcpdump(8).
- Make ssh-agent(1) lifetime and confirmation features work with smartcard keys.
- Build bs(6) and hunt(6) again now that they have good licenses.
- Add option MFS to the kernel on several architectures, to fix upgrade breakage.
- Some RFC3542 Advanced Sockets API for IPv6 updates.
- Add an ARM target for gcc(1).
- De-uglify dhclient-script(8), and (mostly) fix resolv.conf(5) update problems.
- Allow zero intervals in newsyslog(8) config files.
- Fix a missing initialisation in pf_test() and avoid random state table additions.
- Add login class support (-class option) to adduser(8).
- rmail(8) now tells sendmail to deliver in the foreground.
- Make rmail(8) pass the -G flag to sendmail(8) as expected.
- Install rcs2log(1) properly (PR#3298.)
- In user(8) check that a login class exists before using it (PR#2699.)
- user(8) changes from NetBSD:
- useradd(8) and usermod(8) now check that the encrypted password length is correct.
- Log user and group modifications via syslog.
- Pickier command line option checks.
- When deleting a user including the profile, remove all references to that user from /etc/group.
- Checks that a group is in the local files (not from YP) before attempting to modify it.
- Don't allow /dev/crypto to be opened at all if the kernel is compiled without the CRYPTO option.
[Applied to stable]
- Make mount(2) return EROFS instead of EPERM when trying to mount a dirty filesystem.
- Make isakmpd(8) more robust when faced with unknown ID types.
[Applied to stable]
- Change the timer pthread uses, allowing threaded apps to be profiled.
- Allow newsyslog(8) to detect negative numbers in pid files.
- Stop sudo(8) busy-waiting when waiting for sendmail(8) to do its work.
- Better CDDB input checking for cdio(1).
- Make the byte order more uniform in the pf(4) nat code.
- Back out tcp_trace IPv6 changes and fix PR#3283.
- Stability fixes for siop(4) when under heavy load.
[Applied to stable]
- Allow user(8)'s -e and -f to accept both month-day-year and seconds-since-epoch times. From NetBSD.
- Detect oversized usernames in pwd_mkdb(8).
- Check for oversize group names to user(8) and fail the command.
- Fix an off-by-one in user(8).
- m4(1)'s patsubst command now accepts null patterns. This appears to fix GNU Autoconf 2.57.
- A pf(4) table on an anchor rule creates a real anchor, so pfctl(8) works the way one expects.
- Stop pfctl(8) (with the -ss option) printing IPv4 address/netmask pairs as a.b.c.d/128.
- Have identd(8) run by default as user _identd if possible, and fall back to user nobody if that fails.
- Replace setjmp/longjmp in less(1) with interruptible system calls.
- Avoid a null deref in fontconfig(3) when $HOME is not set.
- Fix the addition of /usr/local/lib/X11/fonts to /etc/fonts.conf.
- Don't use M_WAIT in atalk(4).
- Don't forward IPv6 multicasts to an interface that's no longer around to receive them.
- Add large file support to distrib/special/more.
- Teach distrib/special/more how to handle arbitrarily long lines and \r\n line endings.
- Set rusers(1)' column width to 80 if stdout isn't a tty.
- Add generic '-fno-builtin-<function>' option to gcc(1) (see gcc-local(1).)
- Kill the parent ssh(1) process when scp(1) or sftp(1) receive a signal (OpenSSH bug 241.)
- Only drop setgid privileges the once in sshd(8).
- Disable ssh(1) challenge/response and keyboard-interactive authentication methods if there's a host key mismatch, to reduce the likelihood of MiTM attacks catching out ignorant users (OpenSSH bug 580.)
- Make less(1)'s --More-- prompt more --less--, less More, and more POSIX.
- Fix distrib/special/more on machines with unsigned chars.
- Simply and fix tty handing in /distrib/special/more.
- Stop event(3) honouring EVENT_NOKQUEUE when running set[ug]id.
- Disable the ld.so(1) library load order randomiser, it seems to be exposing bugs elsewhere.
- Provide a fast path for userland crypto(9) requests, bypassing the kernel queues where possible.
- Add some tag-related utility functions in kernel pf(4).
- In pfctl(8) process 'show' options before options that change the rulebase.
- Huge license cleanup all over the tree.
- Fix random lockups of cac(4) devices.
[Applied to stable]
- Deprecate the dangerous VerifyReverseMapping sshd(8) option, and replace with new UseDNS option (enabled by default.)
- Install OpenSSL include files in /usr/include/openssl instead of ../ssl.
- Remove the advertising clause from many license statements.
- Use getopt_long(3) for getopt(3), instead of the old implementation.
- Remove a potential double-free from systrace(1).
- Fix a bad string bounds check in libedit.
- String cleaning bootblocks for all architectures. Now only bind and src/gnu use unsafe string functions.
- Fix a few long-missing initialisations, so we don't end up using random stack noise as a hint to uvm_map(9) via uvm_km_suballoc().
- Improve ddb(4)'s symbol table lookup algorithm.
- Properly mask off all but the last 8 bits of status in WSTOPSIG and WEXITSTATUS.
- Add preliminary LBA support to the i386 bootloader.
- Build a dynamic com_err(3) library.
- Add pmdb(1) to the default build.
- Fix timeout signedness bugs in brconfig(8) and bridge(4).
- Some deeper string cleaning in bind9.
- Stop pmdb(1) dumping core when the program to be run doesn't exist.
- Add LD_NORANDOM to the list of environment variables that get zapped when running setuid/setgid.
- Load dynamic libraries in random order, to reduce the probability of an attacker guessing the address of the loaded code. Define LD_NORANDOM to disable.
- Make dhclient(8) more robust by accept non-DHCPNAK messages with yiaddr=0.0.0.0, as sent by some common DHCP servers that ignore the RFC.
[Applied to stable]
- Reorder the sections in many manpages.
- Use sete[ug]id(2) as well as set[ug]id() in ssh(1) when doing privsep and when permanently setting the [ug]id.
- When setting the tcp6 mss, fetch the link mtu using IN6_LINKMTU() (which takes neighbour discovery mtu settings into account) instead of always using the interface mtu.
- Allow numeric uid and gid in systrace, and '<' and '>' operators for ids.
- Add support for IPv6 jumbograms.
- Fix some bugs IPv6-related bugs in tcp_trace().
- Incorporate distrib/special/more's helpfile into the program itself.
- Fix the endianness of fxp(4)'s statistics for netstat -i.
- Fix tab expansion, handle EDITOR not being a full pathname, and much cleanup in distrib/special/more,
- Add pthread support for vax.
- Don't risk an M_WAIT deadlock when processing raw IP output.
- Make libwrap check for bogus PTR records containing numeric IP address in string form.
- Make df(1) use the new fmt_scaled(3) stuff in libutil.
- Fix a few bad *printf format strings in ssh(1).
- Install the mod_ssl headers under /usr/lib/apache/include/
- Add IPv6 support to trpt(8).
- Fix xdm(1)'s XDMCP queries (XFree86 bug #277.)
- Unbreak pf(4) binat rules after recent netmask check changes.
- Improve pfctl(8)'s netmask validity check.
- Have pfctl(8) properly free buffers and initialise pointers when working on tables.
- Push ssh(1) syslog output through strnvis(3) first.
- Fix an fdset leak in ssh(1).
- Remove unsafe sprintf(9) and vsprintf() functions from the kernel.
- Ignore media changes for the first command issued to an sd(4) device. See the checkin comment for details.
- Match kernel vprintf(9) prototype to that of userland.
- Have getconf(1) return _POSIX_PATH_MAX instead of _POSIX_PIPE_MAX when asked for the former.
- Now that kernels are built with propolice, build modules with it too.
- New hardware monitoring sensors driver it(4).
- Fix endianness problems in dc(4) that caused multicast reception to fail when using Centaur chips.
- Add a missing initialisation in altq HFSC.
- Add read-only NTFS support, ported from NetBSD. Not enabled in GENERIC.
- Add a flag to reverse the stereo on auich(4).
- Limit the return value of nice(3) to -NZERO ≤ nice ≤ NZERO, where NZERO=20.
- Make pfctl(8) fail hard when fed invalid hostnames and netmasks.
- Many games fixes from NetBSD.
- Allow the i386 and hppa bootloaders to skip the interactive portion altogether.
- Fix a badly broken switch statement affecting SO_DEBUG in tcp_input.c.
- Stop lpr(1) from checking if the printed file is an executable. Leave this to lpd(8) filters.
- Use a decay filter to get better altq throughput statistics out of pfctl(8).
- In ssh(1)'s do_log(), use syslog_r(3) in code that can be called from a signal handler.
- Severely restrict the paths that privsep isakmpd(8) can read from and write to.
- Use sockaddr_storage instead of sockaddr in isakmpd(8) to fix interface rescanning.
- Keep X.509 private keys only in the privileged part of privsep isakmpd(8).
- When using the pf(4) SYN proxy, make sure ACKs are sent with the correct window size.
- Wait longer for slow USB devices to be ready for attachment.
- Don't build libperl in the libraries pass of 'make build', as we want Perl's configure to pick up details of the libraries that the build may be changing. Another leapfrog-in-waiting.
- Add regen target in libkrb5 to remove (again) the dependency on an up-to-date asn1_compile.
- Complain more consistently about a missing 80-wire IDE cable (for UDMA mode > 2.)
- In syslogd(8) don't use strlcpy(3) when printing strings out of struct utmp, since those strings aren't null terminated.
- Don't ARP for our IP address aliases, treat them as local.
- Merge in a number of USB SCSI device updates from NetBSD.
- Add experimental support for aes-ctr ssh(1) ciphers.
- Apply some of the USB SCSI improvements to the FireWire code as well.
- Add string length bounds to an sscanf(3) in ssh(1)'s rhosts auth code.
- Pull in a fix for directory creation under systrace(1).
- Fix pf(4) rdr rules with address pools using bitmask and source-hash address selection.
- Allow inverse matching of pf(4) tags.
- Fix media handling for Intel dc(4) devices.
- Use the right buffer in spamd(8)'s connection handler.
- Use mmap(2) instead of malloc(3) in vfprintf(3) when more memory is needed to store arguments. See the checkin comment for why.
- New Renegotiate-on-HUP option for the [general] section of isakmpd.conf(5) will cause all Phase 2 SAs to be renegotiated.
- Fix a couple of signedness nits in ksh(1).
- Improvements to USB SCSI support.
- Fix mg(1)'s up and down cursor movement.
- Have ksh(1) use the libc dup2(2) instead of its own.
- Fare thee well, Kerberos IV.
- Another big-bucks firewall feature performed by pf(4): TCP SYN proxy, enabled with 'synproxy state' (this implies modulate state.)
- New AddressFamily option for ssh(1) that works like the -4 and -6 command line options (portable OpenSSH bug 534.)
- Allow address comparison in wi(4) to work on sparc64.
- Prevent a spamd-setup(8) crash with a config file consisting of only invalid input.
- Don't assume that rt->rt_ifp is valid in IPv6 neighbour discovery.
- Add new ConnectTimeout option to ssh(1).
- Disable Kerberos options to ssh(1) programs if Kerberos isn't compiled in, and warn if they're used.
- Have 'ssh -V' print the OpenSSL version properly, instead of trying to %s on a long.
- Repair IPsec forwarding for IPv6, fixing PR#3231.
- Fix a hang in libwrap when the hosts_access(5) file has a line containing > 2048 characters. (NetBSD pr#15025.)
- Add multi-column output to the ls command of sftp(1).
- Wash untrusted input to mail(1) through vis(3) before display.
- In isakmpd(8), don't store the private key in data structures we pass around a lot.
- Fix a missing freerrset(3) in new ssh(1) dnsfp code.
- New fmt_scaled(3) and scan_scaled(3) functions in libutil, for writing and reading numbers with human-readable scales.
- Like for sysctl(8), add a -q option to shut mixerctl(1)'s -w option up.
- Preliminary privilege separation support for isakmpd(8), not enabled by default for now.
- Fix deregistration of per-authentication method handlers in ssh(1).
- In faithd(8) specify IPPROTO_TCP explicitly in anticipation of a day when getaddrinfo(3) supports sctp.
- Prepare to move all KerberosV libraries to /usr/lib.
- More TCP scrubbing: Modulate TCP timestamps to frustrate NAT detection and prevent remote uptime guesses. New scrub option 'reassemble tcp'.
- Kill more unwanted le(4) 'lost carrier' moans.
- Remove the rather short-lived kernel option LONGRUN, it's now standard except SMALL_KERNEL is defined.
- Enable pf(4) tagging support for rdr and binat rules.
- Add _isakmpd user and group for isakmpd(8) privsep.
- Allow ssh(1) clients to send a BREAK to the remote server if it supports it (SSHv2 only.)
- Add _kdc and _kadmin users and groups for the respective KerberosV kdc(8) and kadmind(8) daemons.
- On i386, support Transmeta LongRun power management (kernel option LONGRUN, enabled by default.)
- Add a pf(4) tag for each rule that matches, not just the last one.
- Remove gated stuff from /etc/rc and /etc/rc.conf.
- Add experimental support for ssh(1) host key fingerprint verification using DNS records (dnsfp.) Not built by default. See src/usr.bin/ssh/README.dns for details and build instructions.
- Unbreak malloc(3) map_pages() failure test on 64-bit architectures.
- Back out many recent isakmpd(8) changes until they're working right.
- Disable KerberosIV support in XFree.
- Make sure ssh(1) privsep children die when the monitor parent goes away (OpenSSH bug 560.)
- Upgrade pflogd(8) to use the new bpf(4) link type too.
- Teach tcpdump(8) and libpcap about the new pflog(4) link type in bpf(4).
- Upgrade bpf(4) support for the pflog(4) link type to the 'official' and more extensible version from the libpcap people.
- Start stripping out KerberosIV support from programs.
- When handling a numeric nodename in getaddrinfo(3), set the canonical hostname to the numeric address as per RFC3493.
- Make vis(3)'s VIS_SAFE behaviour match the manpage w.r.t isgraph(3).
- Allow tags to be specified for pf(4) block rules (which aren't allowed to keep state.)
- Allow the pf.conf(5) scrub keyword to take a protocol specifier again.
- Remove KerberosIV support from KerberosV code.
- Add packet tag support for pf(4) nat rules.
- Correct a string length problem and a missing null init in libreadline.
- Add kerberos-over-ssh2 support to ssh(1).
- Reapply the move of Ethernet definitions to <net/ethertypes.h>, but this time have <netinet/if_ether.h> read them in for compatibility reasons.
- New -q flag for sysctl(8) to suppress output from the -w option.
- Fix a circular dependency by removing libtelnet, instead compile the code directly into telnet(1), telnetd(8) and tn3270(1) from files in libexec/telnetd.
- Move contents of libkafs into libkrb5, leave libkafs as an empty dummy library.
- Fix a use-after-free in the new pf(4) tagging code in the kernel.
- Enable the increasingly popular em(4) driver by default on i386 RAMDISK* kernels.
- Sync rdist(1) with freerdist version 0.92, minus the compress option.
- Don't build KerberosIV programs. Libraries still built for the moment.
- Move blktochr() and chrtoblk() into kernel MI code.
- Add [bc]devsw_lookup() kernel convenience functions.
- In pfctl(8) make sure packet tagging is only used on stateful filter rules.
- Add NO_PROPOLICE kernel config(8) option to build the kernel without the stack protector. Handy for install media.
- Fix a string length off-by-one in libreadline.
- Add userland portion of pf(4) packet tagging support.
- Disable afs until it can be made to work sans KerberosIV.
- Force global 'time' structure to be quad_t aligned, unbreaking sparc microtime(9) and possibly other things too.
- Add support in kernel pf(4) for tagging packets, and filtering based on those tags.
- New mbuf(9) tag PACKET_TAG_PF_TAG.
- Make sure lndir(1) doesn't try to use -1 as an array index when reading a directory.
- On ELF architectures, support the blocking of thread switches during non-thread-safe dynamic loader operations.
- Sync ELF identification indexes with the System V ABI specs.
- Stop AM7990 (le(4)) devices emitting 'lost carrier' messages.
- Back out <netinet/if_ether.h> changes after they caused userland meltdown.
- Add propolice stack-smash protector support to the kernel, and build the kernel using it on architectures that support propolice.
- Re-enable NULLFS, UMAPFS and UNION in the GENERIC kernel.
- Move Ethernet definitions from <netinet/if_ether.h> to new <net/ethertypes.h>, like NetBSD.
- Disable Kerberos V-to-IV conversion in login_krb5(8) and login_krb5-or-pwd(8)
- Stop building login_krb4(8) and login_krb4-or-pwd(8).
- Remove references to krb4 from login.conf(5).
- Changes to the way protection fault traps are handled on i386, see the checkin comment for details and Intel abuse.
- Merge in Heimdal KerberosV 0.6.
- Stop user(8) from accepting usernames beginning with a slash.
- Don't report unsupported scsi(4) devices as offline.
- When testing TCP window sizes in pf(4), don't apply the window scaling factor for SYN packets. Do, however, apply the scaling factor when testing ACKs.
- Fix a bug in pkg_add(1) that was causing recursive dependency searches to fail.
- More isakmpd(8) definitions for NAT-T, IKEv2 and EAP.
- Locking and other fixes to unionfs.
- Add BLOCK_SIZE attribute to isakmpd(8), and rename AES ESP transform to AES_128_CBC.
- Add UDP encapsulation type definitions (not code) to isakmpd(8) with an eye to future NAT-T support.
- Adapt nullfs and umapfs to use common code from genfs.
- New genfs code for layered filesystem support.
- Wash print queue names through vis(3) before output.
- Teach ctags(1) to understand '//' comments, ignore declarations of function types, and accept __attribute__. From NetBSD.
- Correctly check for empty output from an at(1) command (PR#3252.)
- New ddb(4) command 'show proc' which, er, shows process information.
- Sync popa3d(8) to version 0.6.2.
- Improvements and bugfixes to the installer's handing of ftp and http downloads.
- Reorder pf(4) IPv6 address comparison to check the least-significant bits first, since these are more likely to differ.
- Make sure the state search trees are properly in initialised when attaching pf(4).
- Remove a number of KerberosV files that are not used by OpenBSD.
- When doing pubkey authentication in ssh(1), prefer agent-stored keys that are referred to in the config file. This can reduce the likelihood of the server disconnecting before it gets to a valid key when the agent is storing many keys.
- Start preparations to remove KerberosIV.
- Remove a number of redundant declarations in games/. From NetBSD.
- file(1) now recognises Ogg Vorbis audio files.
- Use the asn1_compile in src/usr.bin instead of that in src/kerberosV.
- More string fixes to libreadline, this time with no ABI changes.
- Fix a sign overflow in csh(1).
- Merge in OpenSSL 0.9.7b (without IDEA, MDC2 and RC5.)
- Implement adaptive state table timeouts in pf(4), reducing the state timeout value inversely with the number of states present.
- Break asn1_compile out from KerberosV into src/usr.bin.
- First phase of pf(4) stateful TCP scrubbing: Frustrate TTL-based NIDS evasion by determining on the fly the highest TTL, and enforcing it as the minimim TTL for all subsequent packets.
- In ssh(1), Do the xstrdup() of the remote_name inside channel_new() instead of making the caller do it.
- Start to fix the annoying asn1_compile leapfrog problem when upgrading KerberosV by putting the generated files into the tree.
- Make sure a hole at the end of a sparse file created by install(1) actually gets written on all filesystems.
- The installer now accepts absolutely absolute paths (relative to the installer's root directory, not the virtual mountpoint) for local sets.
- Make ssh-keygen(1)'s -e option fail gracefully if the user specifies an SSH1 key. (NetBSD pr#20550.)
- Avoid offence to Klingons by spelling 'Kang' correctly.
- Merge in Heimdal KerberosV 0.6rc1.
- Since mfs doesn't try to force an unmount on receipt of a signal, there's no need to try to fix up processes' working dirs - the unmount(2) will fail.
- Fix isakmpd(8)'s handling of the IPV6_ADDR ID-type.
- Remove an unnecessary ntohs(3) in pfctl(8), unbreaking 'nat ... -> $if port n' rules.
- The pf(4) return keyword now generates an ICMP unreachable message for all protocols other than TCP (rather than just UDP and ICMP.)
- Have the compiler generate warnings if unsafe string functions are used in the kernel.
- Back out libreadline string fixes until static build works.
- Consign swapon(2) to COMPAT_25 in favour of swapctl(2).
- Clear unused and/or invalid globals in authpf(8) to prevent confusion.
- Update authpf(8) to spot (and reject) the new 'load...from' syntax.
- Support loading of anchors from the main pf(4) ruleset with new syntax 'load anchorname:rulesetname from filename'.
- Allow for the null-terminator when calling strlcpy(3) in gcvt(3).
- Remove a number of unnecessary executable mappings in the kernel, e.g. framebuffers and page tables don't really need to be x.
- Add sha2(3) digest support to libc.
- Clear libc digest buffers allocated on the stack with memset(3) before returning.
- Move setrgid(3) and setruid(3) from libc to libcompat.
- Move insque(3) and lsearch(3) and remque(3) from libcompat to libc, since they are now POSIX functions.
- Don't leak socket fds in pfctl(8) queue code, otherwise we can hit the file limit if many queues are defined.
- Fix a number of readlink(2) calls that forgot to leave space for the null-terminator that needs to be added manually.
- Update sudo(8) to 1.6.7p5.
- Add support for the userland portions of XFree86 DRI. Not yet enabled by default.
- In csh(1), null-terminate the string returned by readlink(2) before passing it on.
- Fix mmap(2)'ing of the dynamic linker hints file when the file size exceeds one page.
[Applied to stable]
- Stop gcc(1) from inlining strcpy(3) so it can be more easily spotted in object files.
- Add missing device name parameter when printing a nofn(4) RNG underflow error.
- Fix a bad sizeof() in xedit(1).
- Fix some sscanf(3) off-by-ones in makepsres(1).
- Remove a string memory leak in ld(1).
- Change xclock(1)'s default behaviour back to -norender.
- Fix a few instances of sizeof(pointer instead of object) in expand(1), lbxproxy(1), skeyinit(1) and in the Kerberos IV and BIND libraries.
- Plug a memory leak in the kernel ELF loader.
- In the installer, give the -h option to tar(1) so symlinks on the existing system are honoured.
- Make lynx(1) try active FTP if passive mode fails. This was missed out in the recent upgrade.
- Have rdist(1) use POSIX regex(3).
- Update rdist(1) to cope with rcmdsh(3)'s new ability to handle command line options.
- Make pf(4) rdr and binat rules work again on protocols other than TCP, UDP and ICMP.
[Applied to stable]
- After a forced unmount, try to change process back into real directories now that namei() won't do lookups under the old mountpoint.
- Stop namei() doing lookups on unmounted volumes, prevents crashes with forced unmounts. From NetBSD.
- Don't use M_WAITOK to sleep on failures when allocating hashtables for IP protocols (in_pcbinit()). Fail and panic.
- Pretty up sysctl(8) display units for hw.sensors.
- Only do setusercontext(3) in skeyaudit(1) when running as root.
- Don't use string functions on non-strings in sd(4).
- Kill a small asprintf(3) memory leak in mg(1).
- In skeyinfo(1), convert the username to seven-bit before doing the skeylookup(3).
- Make the fsirand(8) functionality built into newfs(8) non-optional.
- Allow command-line arguments in rshprog passed to rcmdsh(3).
- Add backquote to the list of characters escaped in ksh(1)'s vi-{esc,tab}complete mode.
- Fix a couple of sscanf(3) off-by-ones in afs and makeinfo(1).
- Write the correct amount of data when disconnecting tip(1) on biz22.
- Another memory layout change on i386 to allow a larger MAXDSIZ (see the tech@ archive for details.)
- Add a mail mode to mg(1) that does proper line wrapping, and add the '-f' command line option to set the mode.
- Properly restore the syncer vnode if unmount(2) fails.
- Use the right buffer size for getcwd(3) to avoid unnecessary truncation in at(1).
- Replace local (and wrong) basename logic in ln(1) with a call to the real basename(3).
- Don't leak an mbuf when dropping non-ARPHRD_ETHER arp packets.
[Applied to stable]
- Compatibility improvements to ossaudio(3), mostly from NetBSD.
- Ditch newfs(8)/mount_mfs(8)'s homespun malloc() in favour of mmap(2).
- Prevent a couple of use-after-frees in pfctl(8).
- Defensively zero the m_flags field in mbuf(9) structures allocated on the stack.
- Make what(1) more POSIX-compliant.
- Stop skeyaudit(1) leaking file descriptors in -a mode, and be more paranoid about stdin, stdout and stderr.
- Add Doug Gwyn's portable alloca(3) on platforms for which no assembler version yet exists, and use instead of gcc(1)'s alloca().
- Greatly improved SIS chipset support in pciide(4).
- Make eso(4) work on sparc64 and (probably) macppc.
- A number of vnode(9) fixes and additions. See the checkin comment for details.
- Update lynx(1) to 2.8.4release, patchset 1d, including IPv6 support.
- Allow pf(4) antispoof rules to have labels.
- Keep trying to unbreak apachectl(8) restarts for shared modules when running under the chroot.
- Improve forward compatiblity of fsck_ffs(8) by comparing only what we understand instead of trying to ignore what we don't.
- Make the newly deprecated omsync() work under NetBSD emulation.
- Several strvis(3) -> strnvis(3) changes, all part of the continuing Battle for Safe String Functions.
- Fix some pthreads signal bugs that were causing MySQL to crash (PR#3179, PR#3238.)
[Applied to stable]
- Allow pf(4) tables to be loaded into anchors. pfctl(8) table options except show and flush now honour -a.
- Have the dynamic linker stub functions in libc return -1 if called from a statically linked program.
- Only build shared libXv if the target arch supports shared libraries.
- Consign the omsync() system call to COMPAT_25 obscurity.
- Fix parsing of the noac option to mount_nfs(8).
- In netinet/tcp_input.c, correct a long-standing typo made when applying a deadlock-avoidance bug fix (TCP/IP Illustrated volume 2 fig. 28.30.)
- Fix a crasher in lkm(4), tripped when loading a module twice.
- Make ELF dlfcn(3) calls thread-safe.
- Add /usr/local/lib/X11/fonts to fontconfig(3)'s search list, to help ports.
- Add some missing X server key definitions.
- Re-introduce the mquery(2)-has-mmap(2)'s-signature change, once again renaming the old syscall to omquery().
- Only close the keyfile once in skeyaudit(1) -a mode.
- Do a return from main() instead of an exit(3) in md5(1) and spamd-setup(8),
- Fix some more unbounded sscanf(3) calls in KerberosIV, still more to come.
- Lock earlier when doing vnode ops in procfs to avoid a possible race condition.
- Remove a potential double-free in the XFree wsfb driver.
- Prepare pf(4) table structures for anchor support.
- Much string cleanup in sys/dev.
- Fix the isakmpd(8) fifo 'C set' command (PR#3148.)
- Use strdup(3) and asprintf(3) to eliminate some string length guesswork in rpcgen(1).
- Allocate enough space for a *printf() %u in rpc.yppasswdd(8).
- Correct libXp's shared library dependencies
- Fix fat32 filesystem corruption when renaming directories.
- New lm(4) (National Semiconductor LM78, LM79 and compatible) and viaenv(4) (VT82C686A South Bridge) hardware monitor drivers, adapted from NetBSD to use the new sysctl hw.sensor interface.
- Make funopen(3)'s declaration match its prototype (PR#3236.)
- Back out the recent mquery(2)-uses-mmap() API change.
- Add new sysctl(3) node hw.sensors for, er, hardware monitoring sensors.
- Don't assume that asprintf(3) failures won't clobber the tempfile name in mktemp(1).
- In the IPv4 case of inet_net_pton(3), infer the netmask the same way for all address classes (i.e. don't assume multicast networks are always */4.)
- Be more portable and check the asprintf(3) return value against -1 in pfctl(8).
- Add size bounds to sscanf(3) strings in edquota(8) and tn3270(1).
- Match mquery(2)'s function signature to that of mmap(2).
- Fix pf(4) nat proxy port allocation for manually specified ranges.
[Applied to stable]
- If one is given, properly copy the second port of a nat proxy spec in pfctl(8).
- Fix a bad strlcpy(3) bound in the AFS library (PR#3228.)
- Use asprintf(3) to fix some buffer length problems in pdisk(8/MAC68K)
- When handling the packet size option in traceroute(8), bounds check the right variable.
- Properly detect EOF when generating policy interactively.
- Stop pflogd(8) generating syslog messages on startup.
- Swap a strchr(3) for a strrchr(3) in md5(1).
- When upgrading, treat the /altroot filesystem like a 'noauto' filesystem and omit it from the upgrade fstab.
- Do a proper bounds check when reading in the lynx(1) news server name from a file.
- less(1)'s glob now does tilde and brace expansion as well.
- On gre(4) IP input, use m_pullup(9) instead of assuming the header is in the first mbuf's data region.
- Have make(1) stop parsing command line arguments after a '--'.
- Better bounds checks when expanding curly braces in make(1).
- In ld.so(1), don't set the object load_size field to a negative value because this is likely to be wrong.
- Copy the null at the end of the name when adding a realm in Kerberos V.
- Make authpf(8) die the way it should when authpf.conf is missing (PR#3217.)
- Fix ubsec(4) output statistics.
- Sync sudo(8) with its CVS and bump the version to 1.6.7p4.
- Some typedef perfectionism in libwrap.
- String cleanup and extra paranoia in rd(4) and vnd(4).
- The string cleanup drive continues.
- Add support for the Davicom DM9009 chip to dc(4).
- Help ld.so(1) further by making mquery(2) return EINVAL (instead of ENOMEM) if MAP_FIXED was requested but is unavailable.
- New -x option for mount_msdos(8) to automagically make directories executable if they're readable.
- Unbreak Emacs 21 by fixing a problem with the new mquery(2) part of ld.so(1).
- Make tun(4) work when only IPv6 endpoints are specified.
- Add 4.3BSD's more command for use on some floppies instead of less(1). More is less.
- Change some return values in config(8) and cron(8) from char to int.
- Changes to support the new i386 W^X scheme.
- Move i386 to ELF, a binary upgrade is required for now.
- Use the new mquery(2) syscall in ld.so(1), i386 only for now.
- Avoid teeth-gnashing delays by making the installer use 'route -n show' instead of 'route show'.
- In the kernel ELF loader, use the uvm(9) to make sure that ld.so(1) doesn't overwrite an area that's already in use.
- Fix a buffer overflow that was causing a crash in mg(1) (PR#3090.)
- apachectl(8) now honours $httpd_flags from rc.conf(8).
- Remove a race condition in mount_mfs(8).
- Fix some allocation bugs in mg(1).
- In the kernel's standalone ISO9660 driver, collapse extra slashes in the pathname. This allows files to be loaded from the root of a cd.
- Uncomment the line that unloads httpd(8) shared modules on a server shutdown or restart.
- Many string fixes to named(8), more to come.
- pfctl(8) can now display basic HFSC stats.
- Much cleanup in elf2ecoff(1) (not installed by default.)
- Allocate the right getaddrinfo(3) buffer size in rip6query(8) and route6d(8).
- In audioctl(1), size(1) and spamd(8), don't use snprintf(3)'s return value for pointer arithmetic.
- Back out the 'long ATAPI detection delay' fix due to problems with some devices.
- Add a missing globfree(3) in sftp(1).
- Correct a number of short space allocations for *printf() integer-to-string conversions.
- Fix some problems with the xdm(1) OpenBSD logo, caused by the XFree86 4.3.0 merge.
- Don't increment the ping(8) sequence number until we know the packet has been successfully queued for sending.
- Include the at(1) job number in the process title.
- Put less(1)'s help text back into a separate file, and allow a reduced-size build for the boot floppies.
- Stop using hardcoded SOCK_* types when creating sockets in ssh(1), to facilitate ssh-over-sctp.
- Have isakmpd(8) unlink its fifo and pid file on a clean shutdown (PR#3199.)
- Allow ping(8) to send zero-length packets with the -s0 option.
- Some snprintf(3) buffer length fixes in isakmpd(8).
- Add new mquery(2) system call, to provide hints (especially to ld.so(1)) on where to put memory mappings.
- Make sure systrace(1) leaves space for the trailing null when displaying open(2) flags.
- Fix bad format strings in extattrctl(8) and mopd(8).
- Prevent timeout_add(9) from wrapping around on machines with a long uptime.
- Fix some bogus size_t values in grops(1) and mg(1).
- Update less(1) to version 381.
- Have spamd(8) set file descriptor limits with setrlimit(2).
- Relax the license on strlcat(3) and strlcpy(3) to encourage their bundling with other programs.
- Initial support for HFSC queueing, pf(4)-style.
- Back out recent 'X looks like a package' stuff.
- Merge in expat-1.95.4 from XFree86-current.
- Fix long delays when detecting ATAPI devices.
- sudo(8)'s Makefile now honours the LDSTATIC flag.
- Move queue ID assignment into the kernel and away from pfctl(8), solving a bunch of problems.
- Back out the earlier fix for PR#2230, which is a no-op since zombies aren't on the allproc list being scanned.
- De-allocate bus space on wi(4) device failures.
- Only print the less(1) -d prompt if there's enough space left on the status line (PR#3189.)
- When fixing up process root and working directories after a filesystem mount, leave zombies well alone. (PR#2230.)
- Fix an off-by-one in kernel malloc(9) diagnostic code.
- Correctly initialise xkb memory in the X server.
- Plug some file descriptor leaks in xman(1) (PR#3186.)
- Fix a broken sizeof() in gcc(1) when allocating a new sentinel_info.
- Demote the isakmpd(8) 'missing CRL dir' moan to a debug message.
- The kernel pf_state structure now points to both a rule and an anchor, so states created on anchors can use rule options properly.
- Create the /etc/isakmpd/crls directory from 4.4BSD.dist to stop isakmpd(8) complaining about its absence.
- Strip trailing whitespace before parsing ssh(1) options (OpenSSH bug 528.)
- Disable ssh(1)'s Kerberos IV support.
- Fix spamd(8)'s select(2) error handling.
- mg(1) now remembers the previous 'M-x compile' command.
- Add a missing free() in httpd(8)'s dbm processing.
- More fixes to osiop(4).
- Change some old-style chown(8)s (user.group) to POSIX user:group style.
- Fix a null deref in savecore(8).
- Add some missing NetBSD copyright information to ftp(1).
- Make ktutil(8) work properly over the network.
- Improvements to string handling (not str[ln]* for once) in adventure(6).
- Add fake package information so ports can check for XF4 installation.
- Use ksh(1) instead of csh(1) for XFree distrib scripts.
- Make pfctl(8) reject invalid ICMP types (>40) and codes (>255.)
- Fix a typo in the new ssh(1) rekeying code that was causing the wrong packet state counter to be fetched.
- Update sudo(8) to 1.6.7p3.
- Handle buffer length for strlcpy(3) properly in kvm_mkdb(8).
- Many fixes to osiop(4).
- Improve (as part of string function fixes) sort(1)'s handling of old-style + and - format specifiers.
- Don't treat disklabel fields d_packname and d_typename as null-terminated fields when they're not.
- Fix a bounds-check off-by-one in lam(1).
- Simplify pfctl(8)'s parsing of CIDR masks.
- Add 'queue foo on $i_bar' syntax to allow pf(4) queue specs to apply only to specified interfaces.
- Add 230400 to the list of speeds supported by termios under compat_linux(8).
- Use the default rule when a packet passes due to the implicit 'pass all' at the top of the rulebase, eliminating many NULL tests.
- Add a `default' pf(4) rule and use it to store the default timeouts.
- Add some shared library version updates missed in the XFree86 4.3.0 merge.
- Many string function fixes all over the tree.
- Fix a bad bounds check in OpenSSL's ASN.1 parser.
- Back out the earlier realloc() change to tcpdump(8).
- Update sectok_fmt_fid(3) to take a string length parameter, and crank libsectok's major version for the new API.
- With the XFree86 4.3.0 merge, add an additional definition so that ports libs end up in /usr/local/lib/X11.
- Update sudo(8) to 1.6.7p2.
- Fix user(8)'s empty group test (PR#3178.)
- Improve PRIQ queue id assignment, so same-priority queues on different interfaces work properly.
- Use realloc(3) instead of leaking memory in tcpdump(8).
- Some cleanup in ipcomp(4) and ipsec(4).
- Add a missing initialisation in ssh(1) (OpenSSH bug #526.)
- When an interface doesn't support altq(9), have pfctl(8) print the interface name in the error message.
- Add automatic ssh(1) rekeying in accordance with the current secsh newmodes draft, and fix some rekeying bugs.
- Fix kqueue(2) notification of immediate-mode bpf(4) events (PR#3175.)
- Merge in XFree86 4.3.0.
- Update sudo(8) to version 1.6.7p1, to fix some overzealous paranoia.
- Bump OpenSSH version to 3.6.1.
[Applied to stable]
- Fix an mbuf leak in icmp6.
- Have ftp(1) treat empty environment variables as if they were unset.
- Fix some use-after-FREE when handling crypto errors in ipcomp(4) and ipsec(4).
- Add a missing splx() in ipcomp(4).
- Clean up and additional paranoia in setusercontext(3).
- Only remove a kernel pf(4) rule structure when no states refer to it.
- Helpfully, allow netinet/tcp_debug.c to compile when TCP_DEBUG is defined.
- Fix ahc(4)'s probe of dual-channel 7899 cards.
- Use snprintf to construct device names in the kernel, instead of hand-rolling.
- Give a more consistent message when passwd(1) is aborted one way or another by the user.
- Begin the process of eradicating the remaining strcpy, sprintf, and strcat calls from the tree.
- Fix logging bustage in spamd(8).
- Update sendmail(8) to 8.12.9 to fix a buffer overflow in address parsing. Note that this fix went onto the OpenBSD 3.3 CDs and so is not a 3.3 erratum.
- More fixes to iha(4).
- Stop pmdb dumping core on stripped executables.
- Show in log output the list against which spamd(8) matched.
- Have spamd(8) report exactly how much of the filthy spammer's time was wasted.
- Add a missing strdup(3) error check in pwd_mkdb(8).
- Change login_passwd(8) from setuid(root) to setuid(_shadow).
- Remove OCHIO* binary compatability hacks from ch(4).
- When retrieving the size of a ccd(4) device, check the device is initialised before attempting to open it.
- Add USER_LDT to the list of kernel options(4) controllable via sysctl(3).
- Sync the SMP branch to 3.3.
- Improve iha(4)'s REQUEST_SENSE handling based on hard-won experience with osiop(4).
- Actually look for the lpr(1) -q option when calling getopt(3).
- Fix handling of -f and -h options to lpr(1).
- Improve error handling for invalid pf(4) cbq and priq flags.
- 3.3 -> 3.3-current.
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.
www@openbsd.org
$OpenBSD: plus.html,v 1.881 2003/07/28 15:15:55 deraadt Exp $