This is a partial list of the major machine independent changes
(i.e., these are the changes people ask about most often). Machine
specific changes have also been made, and are sometimes mentioned
in the pages for the specific platforms if you
are interested in further port-specific details. Many ports
have had architecture-specific enhancements relative to NetBSD,
but when they do not they certainly have plenty of platform-independent
changes, starting with those listed below..
Note: Problems for which patches exist are marked in red.
In cp(1), for -p flag also preserve the sticky bit.
In tar(1), fix storage of paths that are exactly 100 characters long.
Add smc91cxx ISA support.
Fix more setmode(3) memory leaks.
Continue integration of AFS.
In i386 bootblocks, clear NT bit in bootblocks whenever switching into prot mode.
Undo gzip nlist(3) support for the 2.4 release, will go back in afterwards.
Add optional support for alternate pid files in newsyslog(8).
Repair the license for boggle(6).
Repair a memory leak in mtree(1).
Fix a writer lock miscount in execve(2)...
Workaround a bug in newer versions of the xl(4) cards.
Repair the license for file(1).
Make tcpdump(8) understand SACK (RFC 2018).
Fix a bug in sed(1).
Media support in the fxp(4) driver.
Replace ed(4) driver with the ne(4), ec(4), and we(4) drivers.
In ftp(1), make the progress meter support ttys that do not have the width set.
Support uids > 32000 in adduser(8).
Make sparc and alpha floppies do dhclient, too.
Fix a few tiny sysctl related changes in route(1).
Add support for SMC EtherPower II 10/100 ethernet cards; tx(4) driver.
Tons more man page cleanups...
More games fixes...
Add a -1 option to dhclient: if the dhclient request fails, dhclient should exit.
In top(1), fix pid sorting on the alpha.
Make tar(1) print verbose output to stdout, not stderr.
Repair some badly written short write() handling in ftp(1).
In newsyslog.conf, rotate authlog and secure entries after 1 week.
Kill COMPAT_09 and COMPAT_10 options.
Provide a way for ftp(1) to show a progress meter, but create no other noise.
Media support for ep(4) driver.
Move ifaliases setup upwards in /etc/rc; now named(8) can use ifaliases.
In /etc/rc.conf, add a nice toggle for ntpd(8).
Finish media support on sparc le(4) driver.
buf oflows in restore(8).
Support media directives in dhcp-based /etc/hostname.* files.
Make the xfs system call always exist.
i386 option NO_APMPRINT for quieter apm driver.
Move dhclient-script to /sbin where it belongs.
Fix a panic in SOCK_RAW.
ncurses 4.2-980912.
Quite a number of install script improvements.
if_media support in lance driver.
With the -h option, add token reporting support to identd.
HP ScanJet IIp support.
Print OpenBSD copyright at boot-time.
Create the first version of the 2.4 install floppy, which includes dhclient on it.
ipf 3.2.9.
sudo 1.5.6.
Handle early-interrupting wdc drives which voilate the MMC2 specifications.
Fix recvfrom() MSG_PEEK to work with length 0, again.
Free AFS client integrated into the source tree.
Significant man page cleanups.
Add help(1), which is basically "man man".
in fdisk(8), for large disks, clamp CHS values to 0xffffff and then encode data in the LBA fields.
Neomagic support in X11.
libcurses version 20.3.
Restore chat -s and -S flags, they were lost.
Fix curses library to use all the possible ways of getting it's termcap definition.
More games fixes.
A new and improved more capable pcmcia code-base.
Support intel 82365SL pcmcia chipset.
Add aic6360 pcmcia support.
new sm driver -- SMC 91cxx ethernet chip support. Common pcmcia chip.
Fix error handling in bootblock filesystem detection code.
Fix a recently introduced bug in nslookup(1).
Fix mips constructor init/fini operation in ld.so.
Fix a signal race in mail(1).
Nice way of handling dhcp at boot-time.
Fix a bug in RMD160.
Make xl(4) driver work on the alpha.
Make the pci de(4) driver finally work fully on big-endian machines.
Fix a hanging-race in mail(1).
zlib 1.1.3
Fixes to the pkg_install tools.
For i386 pcvt, better keyboard timing code.
Teach fstat(1) AFS.
Add command-line selection of dates other than now to pom(6).
More man page repairs.
Add support for nlist(3) of a gzip'd kernel, only used by savecore(8).
Fix some mis-aligned faults in ppp(8).
Fix a gcc 2.8.1 bug which caused code to be mis-optimized.
if_media support in OpenBSD. Some drivers support it, others do not yet.
Buffer mishandling fixes in nslookup(1) and dig(1).
Make a few programs (time, mkdep, lorder) kill themselves with the signal they trapped, rather than provide an exit code.
Continuing work at integrating the ARLA free-AFS source code directly into OpenBSD.
More games fixes.
Teach libpcap that DLT_LOOP devices have a network byte order header.
Return ENXIO for /dev/mem minor devices which do not exist.
uuencode/uudecode get a new -p option.
ppp version 2.0 (MPP)
Make blowfish character interfaces work on unaligned-access-faulting hardware.
Another fix for i386 ptdi panic, in procfs.
Handle the MediaGXm processor.
Buckets of scanf-style overflows in nslookup(1) and dig(1).
Change protocol argument of pmap_set() to be u_int.
Newer version of Kirk's softdep code.
Fix fxp(4) for the alpha.
In the libc/db sub-library, sanitize memory that is being sent out to db files.
Fix a dlopen() bug in ld.so.
Numerous man page cleanups.
Add big-endian 21040 support to the de(4) driver, so that powerpc can use it.
Fix a premature free() bug in libpcap.
Install dhclient-script(8).
In ttyname(), reinitialize the tty buffer with the "/dev/" prefix each time.
More fixes to rpc.pcnfsd(8).
Fix a crash in csh(1).
Sparc qec/be 100mbit ethernet driver.
Support \e in printf built into csh, and document it too.
Significant progress in the powerpc port.
Fix a panic bug in the routing socket.
Better media support in fxp(4) driver.
In kvm_open(3), try /dev/ksyms before /bsd.
Add /dev/ksyms support the kernel. This emulates a fake a.out which has the kernel's ddb symbol table attached to it.
Change savecore(8) so that it tries /dev/ksyms before /bsd.
cvs version 1.10
More improvements to all the games.
Fix new blowfish functions to work on big-endian unaligned-access-faulting architectures.
Fix a malloc race in all filesystems.
More rpc.pcnfsd(8) changes. Again -- do not use rpc.pcnfsd.
Correct readlink(8) in adosfs.
Newer code for the fxp driver.
Change nlist(3) and kvm_mkdb(8) to work with the upcoming /dev/ksyms.
Fix an encryption-related bug in telnetd.
Support -o in top(1).
Add -q flag to mtree(1).
In cfmakeraw(3), also clear IMAXBEL.
realloc fixes to X11.
ecoff support in nlist(3).
In the nfs code, repair non-ANSI code that got incorrectly optimized on some of our architectures.
Many more realloc fixes.
More buf oflows in rpc.pcnfsd(8). Noone should use this code.
Fixes to numerous games.
Fix some important kvm_mkdb(8) bugs.
Add apm and dhcp starting chunks to /etc/rc and /etc/rc.conf.
For the i386, save more battery power by halting the CPU during the APM loop. This affects a part of the pctr driver...
In xterm(1), support VSTATUS.
Add *_ptob() and *_ptob() functions to architectures missing those.
Some updates to talk(1).
Add ISC dhcp to the source tree. This urgently needs a security audit.
Fix df -P for zero-sized filesystems (ie. amd(8)).
Fix FFS data-buffer leaking on segfaults during write.
Make i386 registers get saved correctly in a crash dump.
In /etc/security, do not include fifo's in setuid check.
Fix g++/FlexLexer.h support in lex(1).
Numerous more realloc fixes.
Separate mail.local(8) into two programs: new one is lockspool(8). mail.local is no longer setuid. Ensure that your /etc/sendmail.cf Mlocal line contains an 'S' at the end of the F= field, or local mail delivery will fail.
Add openbsd.m4 OSTYPE to the sendmail cf directories.
Fix numerous incorrect uses of realloc() in the system libraries.
One final fix for the chroot code in named(8).
update to sendmail 8.9.1a.
Fix fdformat(8) exit code.
Fix an incorrect detection problem in aha.c.
buf oflow fix to new rdist (no security effects).
Fix strtod(3) so that it is valid actual C code (ie. and doesn't generate bad code when optimized).
In hexdump(1), detect a format string of all spaces as bad.
Prototype poll().
In gprof, permit $ in symbol names.
Fix coredump in find when doing find . !
Add ECB and CBC encryption for octet streams to blowfish.
Fix base64 encoding in bcrypt(3).
Fix scon(1) to permit -d and -c to work together.
In i386 vt console driver, wait for ACK back from keyboard when setting typematic rate.
update to zlib 1.1.3.
Fix atime and mtime commands in fsdb.
Don't wrap 80 characters in rup -d.
Add russian message catalog.
Protect against SIGPIPE in fdisk(1).
Fix interrupt disabling in pms(4) driver.
Remove kill(-1, 0) code from reboot(8) which does not work exactly as intended.
Correct exit code of ls(1).
For dump, further improve the semantics for "filesystem not in fstab".
More work on big-endian support in the ncr(4) and de(4) drivers.
Support mem-mapped com ports on powerpc.
Support gdb, ptrace, and /proc on the powerpc.
Do not use libiberty version of vasprintf, since it is quite busted.
Make the powerpc install floppy work once more.
Support PAGER environment variable inside disklabel 'M' command.
Repair umapfs.
Repair portalfs.
Repair some kvm man pages glitches.
Genericize some internal vop functions to fix some NULLFS problems.
At attach time, print a single line for the geometry in wd(4).
For sendmsg() and recvmsg(), return EMSGSIZE not EINVAL for msg_iovlen <= 0.
Add the IOV_MAX define as required by XPG.
Fix a few more resid issues in the kernel.
Hack SIOCGIFCONF so that ifc_len=0 is a length inquiry, as in Linux.
Install perl .ph pages in the right directory.
In ftpd(8) manpage, fix the definitions of the high ports since the kernel definitions were changed.
Fix an argument parsing bug in chat(8).
Fix isapnp ym(4) audio driver.
Update to ncurses-4.2-980801.
Use SO_REUSEADDR in lpd(8) in case it is restarted by hand.
Use a single-char buffer in snprintf() for the size==0 case.
Fix some problems in disklabel -E.
Fix bugs in pom(6), atc(6), quiz(6), hack(6), adventure(6).
Add tic, captoinfo, and infotocap from ncurses-4.2-980718.
Place a timezone file in the named chroot jail.
ncurses-4.2-980718 with our termlib library integrated. The separate termlib library no longer exists (although for a time libtermlib is a link to libcurses).
New libform, libmenu, and libpanel from ncurses-4.2-980718.
Change latencies permitted for certain scsi tape commands.
Make mt status show more information on scsi tape drives.
bt848 driver for the i386.
Fix MKD command in ftpd to properly show the path created.
Build mpool(3) manpage.
Support 8.4GB+ IDE drives.
Fix a serious TZ calculation error in the CD9660 filesystem which caused CD filesystem timestamps to be completely wrong.
Document LD_PRELOAD in ld.so(1) manpage.
Sparc cua support in the zs driver.
Add CAST encryption to libc.
More verbosity changes to apmd(8).
Make /var/backups mode 700.
Fix a crash in asa(1).
Fix usage messages in sort(1).
Fix sparc installer to deal with a dirty dmesg buffer.
Make SEM_R and SEM_A accessible to userland in sys/sem.h.
Do not permit uppercase login names in adduser(8); that's a bad default.
Fix a bug in less that prevented keypad keys from working on some terminals.
In the man(1) manpage, document -k and -f.
Rename curs_terminfo(3) man page to terminfo(3).
Make the ramdisk driver not force single-user if it is the root device.
Quieten the i386 apm driver.
Fix /tmp race in a man page example. (Sigh.)
isa_intr_establish() will never panic. It can return NULL for failure.
Split sparc hme driver into chip and board specific; be driver should not be far away now.
rpc.yppasswd(8) has no log file; fix docs.
Update to Lite2 getenv(), which returns NULL for getenv(NULL).
Fix a problem with the PCI ncr(4) driver if many scsi devices were in use.
Change <sys/ipc.h> to use uid_t, gid_t, and mode_t for types. Provide emulation system calls for the old ushort-based structures.
Fix an mbuf chain corruption bug that affected large amounts of data flowing through ipsec(4).
Fix spelling and grammar in numerous man pages.
Fix a minor bug in mail(1).
Fix a bug in atalk(4).
In tcpdump(8), support DLT_ENC packets.
Make decoded IPSEC(4) packets available to bpf(4) via enc0, using linktype DLT_ENC.
Fix a minor bug in pwd_mkdb(8).
Make the 4th argument of semctl(2) optional.
Add new TCPCTL_IDENT sysctl for identd(8) to use, instead of kmem snooping. Significant performance improvement too.
Add DLT_LOOP to bpf; to handle 4-byte proto headers on some interfaces.
In the kill(2) patch, also permit SIGUSR1 and SIGUSR2.
buf oflow fix in libc/rpc.
In ftpd(8), also permit ftpchroot users to be multihomed.
Various fixes to ftp(1).
Make getty(8) default to 8 bit mode.
Autodetect ATAPI cdrom drives that do not support ATAPI_READ_CD_CAPACITY.
The following patch was deleted later, ignore it: If a process is being ptraced, do not permit execution of an immutable binary, also, if a process is running an immutable binary, do not permit ptrace. This can be a security issue. A patch is available which fixes this problem.
Change all modifications of struct sigaction's sa_mask field to use sigsetops(3).
Teach adduser(8) about the /sbin/nologin shell.
Ensoniq AudioPCI driver.
isapnp joystick driver (not tested).
Move named into a chroot space by default.
Fix the RMD160 code once again.
Fix a possible panic due to ktrace(2).
New fixes to the bpp support in the sparc magma driver.
Fix root password setting code in install script.
terminfo/termcap 10.2.3
Fix xdm(1) to close an excess file descriptor it left around.
Permit kill(2) to send signal 0 to processes that are setuid, as long as the existing uid check succeeds.
Change uudecode(1) to accept spaces in the filename.
Move temporary file used by chfn(1) to /var/tmp.
Add support for pcvt to kbd(1).
in chfn(1), unlink the temp file after finished using it.
Fix /tmp use in yacc.
On the i386, grow i386 kernel malloc area by 2MB.
In chfn(1), permit gecos sub-fields to be empty.
Fix sysctl net.inet.icmp.bmcastecho.
Fix an nfs crash.
Tweak IPSEC so that it supports VPNs trivially. A new vpn(8) manpage describes how to use this.
Integrate rt(8) and rtdelete(8) directly into ipsecadm(8).
Make named(8) run in a chroot space.
Integrate XFree86 3.3.2 patch 2.
Fix multi-address support in telnet(1).
Made i386 pctr driver compatible with all CPU vendors.
Added "feature bits" display to i386 CPU detection, and added more AMD and Cyrix processor models.
Modified named to stash its argument vector in pid file like sendmail does and modified ndc to use it. This means "ndc restart" will now restart named with the correct arguments.
bind 4.9.7, with the -u, -g and -t options from 8.1.2.
Handle constant numeric U and LL extensions.
Stop info gathering in uucpd(8).
Various TCP RPC fixes to deal with data streams that could cause lockups inside the library.
Add sparc magma serial device driver.
Install sendmail configuration goo in /usr/share/sendmail.
Fix two cases of incorrect timeout handling in the RPC library.
Add the required setsockopt(2) interface for IPSEC, update photurisd(8) to accept notify messages from the kernel.
Fix numerous uses of MAXHOSTNAMELEN+1 instead of MAXHOSTNAMELEN, and also do the same for other similar cpp variables.
Fix numerous source tree uses of readlink() with an incorrect length parameter.
Install gdb(1) info pages.
New distribution install notes that use m4 instead of cpp for formatting.
In gdb, do not use 4.3 compatibility tty ioctl() calls.
Fix a memory trashing bug in the IPSEC SPI chain delete function.
Fix acct(2) to work with append-only files.
Fix buffer overflows in getNAME(1).
In mount_nfs(8), contact the portmapper about the correct protocol (tcp or udp).
Correct 64 bit timeval storage in ping(8) packets; also put the time in network byte order.
Start cron at the end of /etc/rc to avoid some security issues.
Compile the system with -O2 instead of -O.
Fix a bunch of scanf related buffer overflows.
Improve XR16C850 support.
Fix less -d option.
Fix i386 divide overflows traps which were possible in the NTP code.
Remove some more incorrect uses of long in kerberos code.
Add a man page for ndbm(3).
As described a few lines above, support even more commands in make(1).
Make the csh(1) command kill more standards compliant.
Improve documentation about how to properly enable YP client databases.
Emulate umask and exit script commands inside make(1) directly, to get closer to the expected behaviour. Later on we may want to emulate more commands, like gnumake does...
Make perl(1) support calls to lockf(3) now that we have it.
Disable dynamic loading in the mips version of perl(1).
Make size(1) work on files created via ld -Z.
A possible new security problem exists if you rely on securelevels and immutable or append-only files or character devices. The fix does not permit mmap'ing of immutable or append-only files which are otherwise writeable, as the VM system will bypass the meaning of the file flags when writes happen to the file. A patch exists which solves the problem.
Niklas is taking a shot at making our cross compiler toolset sufficient for a full cross compile of the vax port.
Fix a file parsing overflow in kdb_util(8).
Make config(8) store the first free unit number in its tables so that pcmcia device re-insertion can come back to the same unit number.
const the parameters to a few more system calls.
Fix 'z' command in mail(1).
Fix short read() and write() operation in the RFC1413 handling code in httpd(1).
Fix some bad uses of sscanf problems in the source tree.
Fix i386 copyoutstr().
Support 16 partitions in the pmax port.
Correct handling of escaped % correctly in crontab lines.
Make the AD1848 and Yamaha OPL3-SA3 sound drivers work.
pppd 2.3.5
Fix localtime(3) support inside perl(1).
Fix a number of disklabel issues in the hp300 and pmax ports.
Enable #pragma pack and #pragma weak support in gcc.
Fix at least one remotely activated buffer overflow in lynx(1).