This selection is intended to include all important
and all user-visible changes.
For a complete record of all changes, please see the "source-changes"
mailing list, called "OpenBSD CVS"
in the archives,
or use CVS.
Note: Problems for which patches exist are marked in red.
For changes in other releases, click below:
Changes made between OpenBSD 5.9 and -current
- In pf(4), don't panic if an mbuf(9) already has a statekey. This should help finding the remaining corner cases of packets looped back in the stack.
- In vmd(8), place a BOOTARG_END section at the end of the boot arguments list pushed to the VM during boot. This makes it possible to install and run an OpenBSD i386 guest VM using vmm(4).
- In libsndio, switch to the "new" audio(4) API.
- In ssh(1), don't record duplicate LocalForward and RemoteForward entries (bz#2562).
- In bgplg(8), use SERVER_NAME for the hostname displayed on the page.
- Increase size of the clone bitmap. This is required for upcoming work on cloning bpf(4).
- In vmm(4), support processors without unrestricted guest capability.
- Fix EXA detection in r128(4), cirrus(4), mach64(4) and mga(4).
- Enable creation of softraid(4) volumes using disks with non-512 byte sectors. This increments the metadata version.
- Fix a memory leak in isakmpd(8).
- In dhcpd(8), fix an abort due to a missing pledge(2) promise.
- Add -f to ndp(8).
- In grep(1), don't do reverse search optimization if looking for all matches in a line.
- On armv7, map and use the bootconfig/FDT area passed by u-boot and try to init FDT on it. This allows for the use of device tree information.
- In Xserver(1), implement VT switching (based on the USL compat interface) in the wscons console backend and use it by default.
- Update to xf86-video-ati 7.6.1.
- In ihidev(4) and dwiic(4), add support for I2C HID devices with GPIO signalled interrupts.
- In rcctl(8), rename the "faulty" list action to "failed".
- In tftpd(8), go in the background much later to reduce possible silent failures.
- If one of the TCP SYN cache buckets overflow, it might be a collision attack against the hash function. Mitigate this attack by reseeding the hash function as soon as possible.
- In uslcom(4), add support for the USB console port on Aruba 7xxx wireless controllers.
- In ssh(1), remove fallback from moduli to "primes" file that was deprecated in 2001 and fix log messages referring to primes file (bz#2559).
- In wsmouse(4), add support for multitouch input.
- In rdistd(1), properly create directories that do not exist on the destination.
- Improve support for alphas without all IEEE-mode instructions.
- In gcc(1), fix optimization for alphas without the "precise arithmetic trap" extension.
- In tmux(1), bump the listen(2) backlog up from 16 to 128.
- Implement proxy ARP for ART based on mpath support.
- In acpi(4), hook up the gpio interrupt on devices that use it for card detection. This makes the SD card slot on machines based on Intel's Bay Trail SoC fully functional.
- In bytgpio(4), add support for gpio-based interrupts.
- Add getlogin_r(2) system call that checks and returns errors like the userspace getlogin_r() API.
- Remove MLINKS from base. They are no longer required by mandoc(1).
- Enable oce(4) on sparc64.
- In binutils, fix fallout from the switch to binutils 2.17: the binaries created by 2.17 aren't recognized by the in-tree gdb(1) because it's built with the bfd code from 2.15.
- Add the net.inet.tcp.synuselimit sysctl(8) to adjust tcp_syn_use_limit. This is convenient to test the feature and may be useful to defend against syn flooding in a denial of service condition.
- In authpf(8), avoid a dereference of a null object.
- In tcpdump(8), properly check for the end of captured packet while printing CDP packets.
- Ensure that a thread that calls sched_yield(2) ends up on the run queue behind all its sibling threads. This results in significant improvements for processes that suffer from lock, most notably firefox.
- Add bytgpio(4), a driver for the gpio controllers found on Intel's Bay Trail SoC.
- In netstart(8), don't delete the 224/4 route unless it's being done to ensure that a -reject route can be added. This restores the ability to set an interface route before daemons are started.
- Avoid an attack that could prevent reseeding of the hash function used for the hash buckets in the TCP SYN cache.
- In sdhc(4), make it possible to override the standard card detect mechanism to appease the SD controller on Intel's Bay Trail SoC.
- Avoid a NULL pointer dereference when pulling and unmounting a umass(4) USB stick.
- In libssl, fix a memory leak.
- Switch from the SolidRun i.MX6 U-Boot to mainline U-Boot on the CuBox-i.
- Always include the route priority in routing messages.
- Do not populate RTAX_NETMASK when sending a routing message for RTF_HOST entries. This preserves old behavior with ART and fixes a regression.
- In rc.d(8), make it possible to get usage as a non-root user.
- In less(1) and ul(1), improve handling of ambiguous overstrike sequences.
- In gcc(1) on arm, change the default arch target from strongarm (armv4) to arm9e (armv5te without xscale extensions).
- Enable ART (Allotment Routing Table).
- Ensure that a found proxy ARP entry has the correct flag.
- In kernel clock, set ticks 15 seconds before its value wraps. This helps to identify issues around ticks wrap in 15 minutes instead of 240ish days.
- In kdump(1), display NAMI records and AF_UNIX socket(2) paths with vis(3).
- Update to tzdata2016c from ftp.iana.org.
- In pipex(4), don't leak an mbuf when copying a packet fails.
- Remove ARM10 and ARM11 support.
- Fix various issues with bad gateways being picked up by bgpd(8).
- Remove ARM9E support.
- In npppd(8), log the reply message from RADIUS server when the authentication fails.
- Add pledge(2) to tokeninit(8).
- Rename sendsyslog2(2) to sendsyslog(2).
- In ral(4), improvements for the RT2860 chip:
- Fix watchdog timeouts and dropped frames under load.
- Fix a bug where oactive is not set and mbufs are dropped.
- Add a counter in the TCP SYN cache and in netstat(1) -s to show how often the hash function is reseeded and the random bucket distribution changes.
- On octeon, use the list of the usable memory regions provided by U-Boot instead of the hardcoded regions in memory setup.
- In ksh(1), make the "command" builtin POSIX-compliant and consistent with other current shells.
- In ld.so(1), let the stack smash handler log to console directly if it is not possible to deliver to syslogd(8).
- In vnet(4), plug a memory leak in ioctl(2) code path.
- Many improvements of libedit, in particular with regard to UTF-8 support.
- In axen(4), initialize the hardware on reset. This allows it to attach reliably and pass traffic, and prevents a panic when unplugging it.
- Import libdrm 2.4.67.
- Attach dwctwo(4) only on Octeon models that have a DWC2 controller.
- Remove support for StrongARM (SA1), IXP12x0, IXP425 and XScale 80200.
- In vi(1), avoid a backwards memcpy(3) when issuing ":e +something".
- In tmux(1), make scrolling behaviour more sensible and maintain cursor position, as if the same had been done line-by-line.
- In pkg_add(1), use a new _pkgfetch user for separation instead of the _pfetch user.
- Remove ARM8 and ARM9T support.
- Add octuctl(4), a driver for the Octeon II USB Controller Interface, and attachments for ehci(4) and ohci(4).
- In puc(4), add support for the TXIC TX382B (currently TX/RX FIFO is not working).
- In column(1), lpq(1), ls(1), newfs(8), ps(1), rusers(1), sed(1) and growfs(8), use the COLUMNS environment variable first, and either terminal width or a hardcoded value (typically 80) as appropriate.
- In libssl, use explicit_bzero(3) for ASN1 objects on free. Too often these contain sensitive information.
- In vi(1), add error checking for the COLUMNS and LINES environment variables to avoid a crash.
- In sd(4), prevent a use-after-free of the scsi link structure during detach.
- Expose new and much simpler audio(4) ioctls.
- In npppd(8), transition to "Req-Sent" had been missing when RTA in "Opened". This caused a timer event leak.
- Update to tzdata2016b from ftp.iana.org.
- Allocate amap slots for a virtual memory range reserved with sbrk(2) lazily. This avoids wasting kernel memory if the user process does not make use of the allocated memory.
- For amaps with only a few slots, allocate the slots via pool(9). This saves some memory and reduces kmem pressure.
- 5.9 RELIABILITY FIX: Incorrect path processing in pledge_namei() could result in unexpectedprogram termination of pledge(2)'d programs.
A source code patch is available for 5.9.
- 5.7, 5.8 and 5.9 SECURITY FIX: Insufficient checks in IPv6 socket binding and UDP IPv6 option processing allow a local user to send UDP packets with a source (IPv6 address + port) already reserved by another user.
A source code patch is available for 5.7, 5.8 and 5.9.
- In puc(4), add support for the Exar XR17V354 device.
- Remove the legacy uiomovei(3) function. It has been replaced by uiomove(9).
- In ssh(1), unbreak authentication using lone certificate keys in ssh-agent (bz#2550).
- In acpicpu(4), correct the value of SRT_ENDTAG: it was documented incorrectly in early ACPI specs.
- In libfontconfig, enable atomics operations on mips64 and mips64el.
- In vmm(4), introduce memory ranges to support VMs with 4G or more of RAM.
- In ichiic(4), ignore the SMBALERT# interrupt. This fixes booting the GENERIC kernel on ADI RCC-VE with buggy BIOS versions, rendering the internal eMMC flash unusable.
- In kdump(1), recognize ipmi, vscsi, pvbus, udl, fuse, trunk, pipex and memrange ioctl(2) requests.
- In sd(4), avoid a kernel panic when unplugging an USB umass stick because of a use after free.
- Avoid corrupt mount points without a valid device when unmounting.
- 5.7, 5.8 and 5.9 SECURITY FIX: Lack of credential sanitization allows injection of commands to xauth(1).
A source code patch is available for 5.7, 5.8 and 5.9.
- In ssh(1), sanitise characters destined for xauth(1).
- In isakmpd(8), don't retransmit responses for unauthenticated messages.
- Remove support for vax.
- In fdisk(8) and pdisk(8), accept only a character special device as disk.
- Rework how mpw(4) interacts with vlan(4). This will allow vlan(4) to become MP-safe.
- In xterm(1), use UTF-8 mode by default.
- In httpd(8), set the content charset for auto index generated pages.
- Make "cp -i" behave as "mv -i" or "rm -i", independently of whether stdin is a tty or not.
- Do not remove RTF_STATIC L2 entries from the routing table. Static entries might not have a cloning route to re-create them and hence be gone when their timer expires.
- In kdump(1), improve display of unknown and KTR_START records.
- Avoid refetching blocks already in the buffer cache. This significantly improves read operations on MSDOSFS.
- Update to xrandr 1.5.0.
- Update to libXrandr 1.5.0.
- In ksh(1), make "set +o" conform with POSIX.
- Tweak uvm assertions to avoid locking in some cases.
- In file(1), sync "archive" magic from file 5.25.
- In ntpd(8) constraints, avoid using %Z specification of strptime(3) which disagress with RFC7231 and can give surprising results on other operating systems.
- In tmux(1), improve UTF-8 locale checking.
- Update to unbound 1.5.8.
- In ksh(1), fix POSIX-compliant behavior of "set -u" regarding "$*" and "$@" specials.
- Almost completely rewrite mknod(8) in order to allow a speedup of MAKEDEV(8).
- In tmux(1), avoid accessing a NULL pointer.
- In vmd(8), set root device to sd0a, instead of wd0a.
- In ksh(1):
- Don't parse (...|...) patterns in variable substitution inside double quotes. This fixes a POSIX compatibility issue.
- Remove the mknod builtin.
- In ssh(1), fix ClientAliveInterval when a time-based RekeyLimit is set (bz#2252).
- In tmux(1):
- Avoid mixing up RGB colours with aixterm colours.
- Make the show-* and set-* commands handle a missing target.
- On amd64 and i386, unwind the trapframe correctly when a breakpoint is set on "syscall". This prevents a fault in ddb(4) on amd64.
- Remove the machdep.userldt sysctl(8).
- In ieee80211(9), restore an assignment of device current mode. This fixes iwi(4) fatal firmware errors.
- Bump link_maxhdr (the space reserved before an ip packet payload for link headers) from 16 to 64.
- In scp(1), improve accuracy of reported transfer speeds.
- In sftp(1) and scp(1), improve precision of the progress meter.
- In tmux(1), improve wcwidth(1) and mbtowc(1) error handling.
- Remove Linux emulation support.
- In libssl, add bounds checking for read_ledword().
- In libssl, add bounds checking for BN_hex2bn(3) and BN_dec2bn(3).
- In acpi(4), add more Windows versions for _OSI checks.
- In cpsw(4), detect and only enable the port that is actually used. This avoids device timeouts. Also enable interrupt pacing to limit interrupts at 2K/s.
- Set the IFF_MULTICAST flag on tun(4) interfaces so IPv6 addresses can be assigned.
- In diff(1), rectify line numbers for "s/.//" commands in ed-style diffs.
- In libedit, fix a segfault and functional error in c_gets().
- In libssl, remove support for ancient, broken DSA implementations.
- Fix a bug when IPsec UDP encapsulation is used for IPv6.
- In gcc(1), fix an Internal Compiler Error on alpha when using __sync builtins.
- In fnmatch(3), fix negation of POSIX character classes.
- Prevent a memory leak in vnet(4/sparc64).
- Valdate fs_maxsymlinklen in the superblock of ffs and ext2fs filesystems to avoid use of bogus data.
- On alpha and sh, now that time_t is 64-bit, no longer ignore the hardware clock when it reports a year after 2037.