www.Lucq.org

OpenBSD patches

Introduction and disclaimer

This section of my site contains several patches for little problems I encountered in OpenBSD, as well as some enhancements to the base system. In order to use these patches, you should be familiar with how to patch and rebuild your kernel and your OpenBSD system. Please read the appropriate documentation if you don't know how to do this. If you have any remarks or questions, do drop me a note.

I cannot be held responsible for direct or indirect damage or any other consequence of using, or not using, or using incorrectly, the information presented on this page, or linked to from this page.

The patches

  1. Tuning/configuration (enhancement)
  2. i386 fdisk fix
  3. 32-bit rcp fix
  4. savecore fix
  5. 32-bit vnd fix
  6. 32-bit dump fix
  7. dhcpd fix
  8. execve fix
  9. wdc debug fix
  10. optional ptrace/acct (enhancement)
  11. UFS_EXTATTR_AUTOSTART fix
  12. ddb.panic config (enhancement)
  13. jftpgw fix (from the ports)
  14. popa3d fix
  15. openssl fix
  16. arpwatch 2.1a11 fix

Tuning/configuration

These patches allow you to use the config(8) command to set some kernel parameters, instead of having to recompile the kernel when you want them to change. Currently the patch allows you to modify the NMBCLUSTERS value and the BUFCACHEPERCENT value. Once you have installed the patch and recompiled the system, use the new config(8) commands “nmbclust” and “cachepct”.

Patch Dates from Against tree Notes
tuning-20011107-1109.tgz 2001/11/07 11:09 OpenBSD 3.0-stable 2001/11/06 15:38
First public release. Includes NMBCLUSTERS and BUFCACHEPERCENT.
tuning-20011109-1234.tgz 2001/11/09 12:34 OpenBSD 3.0-stable 2001/11/06 15:38
config new checks for the presence of the relevant symbols before trying to change the values. Following a comment from maja@. Also changed the name of the nmbclusters variable to nmbclust for this reason.
tuning-20020212-1546.tgz 2002/02/12 15:46 OpenBSD 3.0-current 2002/02/12 15:12
Adapted the patch to 3.0-current. Added configuration of NKMEMPAGES (as recently added by niels@ to the kernel).
tuning-20020214-1631.tgz 2002/02/14 16:31 OpenBSD 3.0-current 2002/02/12 15:12
Removed VM_MBUF_SIZE from all headers and modified kern/uipc_mbuf.c to use nmbclust directly, at the request of art@.
tuning-20020215-0949.tgz 2002/02/15 09:49 OpenBSD 3.0-current 2002/02/12 15:12
Corrected by art@, macppc and mvmeppc do define MCLBYTES, but it's in powerpc/include/param.h. Removed the two #defines I inserted for this purpose.
Incorporated into OpenBSD 3.0-current on 2002/02/17 16:01 MST and 2002/02/17 15:59 MST by maja@.

i386 fdisk fix

This patch fixes a typo in the fdisk program. This fix should solve a lot of disk set-up problems on i386.

Patch Dates from Against tree Notes
fdisk-20011114-1022.tgz 2001/11/14 10:22 OpenBSD 3.0-stable 2001/11/06 15:38
First public release. Should also apply against earlier versions of the source tree.
Incorporated into OpenBSD 3.0-current on 2001/11/14 09:42 MST by mickey@.

32-bit rcp fix

This patch fixes a 32-bit related problem in rcp, which occurs when dealing with files that are larger than 2GB (on machines with a 32-bit integer type).

Patch Dates from Against tree Notes
rcp-20011115-1435.tgz 2001/11/15 14:35 OpenBSD 3.0-stable 2001/11/06 15:38
First public release. Should also apply against earlier versions of the source tree.
Incorporated into OpenBSD 3.0-current on 2001/11/21 08:35 MSG by markus@.

savecore fix

Since some time, the savecore command is not capable anymore of clearing the crash dump area reliable, i.e. every time you reboot the same crash dump gets saved again. Very annoying. This patch of libkvm fixes that.

Patch Dates from Against tree Notes
kvm-20011116-0957.tgz 2001/11/16 09:57 OpenBSD 3.0-stable 2001/11/06 15:38
First public release. Should also apply against the 2.9 tree.
Incorporated into OpenBSD 3.0-current on 2001/11/21 13:16 MST by drahn@.

32-bit vnd fix

vnd(4) and vnconfig(8) apparently also suffer from 32-bit woes (also see OpenBSD PR 1484). This patch fixes that.

Patch Dates from Against tree Notes
vnd-20011122-1617.tgz 2001/11/22 16:17 OpenBSD 3.0-stable 2001/11/06 15:38
First public release. Should also apply against the 2.9 tree.
vnd-20011128-0925.tgz 2001/11/28 09:25 OpenBSD 3.0-stable 2001/11/27 11:38
Modifications following comments from niklas@.
Incorporated into OpenBSD 3.0-current on 2001/12/06 17:11 MST by niklas@ after some touching-up.

32-bit dump fix

The 32-bit saga continues. Apparently dump/restore are also afflicted. The patch below attempts to remedy this problem.

Patch Dates from Against tree Notes
dump-20011127-1658.tgz 2001/11/27 16:58 OpenBSD 3.0-stable 2001/11/27 11:38
First public release. Should also apply against the 2.9 tree. This is relatively untested code, i.e. use this at your own risk.
Incorporated into OpenBSD 3.0-current on 2002/03/14 13:41 MST by mickey@, together with more fixes by mickey@ and millert@.

dhcpd fix

OpenBSD 3.0 contains ISC DHCP 2.0, but apparently this version has a problem with e.g. option host-name in the configuration file. The problem appears to be related to some changes in the configuration file parser. The patch below attempts to address this problem.

Patch Dates from Against tree Notes
dhcpd-20011128-1039.tgz 2001/11/28 10:39 OpenBSD 3.0-stable 2001/11/27 11:38
First public release. Should also apply against the 2.9 tree.

execve fix

This is really, really minor, but according to the man-page, execve(2) should return EFAULT if argv is NULL, and not EINVAL as the current code does. At least, that's my interpretation... Anyway, this patch fixes that.

Patch Dates from Against tree Notes
execve-20020117-1621.tgz 2002/01/17 16:21 OpenBSD 3.0-stable 2002/01/16 15:34
First public release. Should apply against all versions of the tree.
Incorporated into OpenBSD 3.0-current on 2002/03/14 10:17 MST by mickey@

wdc debugging fix

Apparently the wdc(4) debugging code barfs at boot-up due to a page fault. This patch fixes the problem (which is due to a null pointer being dereferenced). Problem discovered while debugging RAIDframe code.

Patch Dates from Against tree Notes
wdc-20020212-1514.tgz 2002/02/12 15:14 OpenBSD 3.0-stable 2002/02/12 14:57
First public release. Should apply against all recent versions of the tree.

Optional ptrace/acct

This patch makes the ptrace(2) and the acct (per accton(8)) kernel subsystems optional. This allows for slightly smaller installation kernels to be built. Removing ptrace(2) might also be good for security, given recently discovered race conditions.

Patch Dates from Against tree Notes
ptrace-acct-20020218-1813.tgz 2002/02/15 09:49 OpenBSD 3.0-current 2002/02/12 15:12
First public release.
ptrace-acct-20020219-1243.tgz 2002/02/19 12:43 OpenBSD 3.0-current 2002/02/19 11:34
Included remaining compat systems in the patch.
miod@ committed his own version of this, so these patches are now obsolete :-).

UFS_EXTATTR_AUTOSTART fix

The UFS_EXTATTR_AUTOSTART feature of the new extended attributes code does not work properly. The problem appears to be that the nodes are left in locked state following ufs_lookup. This patch fixes that.

Patch Dates from Against tree Notes
ufs_extattr_autostart-20020328-1639.tgz 2002/03/28 16:39 OpenBSD 3.0-current 2002/03/15 10:25
First public release
Incorporated into OpenBSD 3.0-current on 2002/03/31 15:00 MST by drahn@.

Making ddb.panic config(8)-able

This patch allows you to change the hard-coded value for ddb.panic through config(8). This is actually a patch of limited usefullness, since sysctl(8) can also change this, and you can alter the value at boot time by invoking ddb(4) at the earliest possible time and change the value using the w command.

Beware: if you change the value to zero, and the kernel borks at boot time, you will end up in a continuous boot/reboot loop until you intervene at the console. You have been warned.

Patch Dates from Against tree Notes
config-ddb.panic-20020422-0958.tgz 2002/04/22 09:58 OpenBSD 3.0-current 2002/04/19 11:54
First public release.

jftpgw fix (from the ports)

This patch lets the jftpgw port as shipped with OpenBSD 3.0 know about the EPRT and EPSV commands. The program will simply respond with “500 command not understood”. This prevents problems in the case where both the client and the actual server know about these commands, but jftpgw doesn't.

Create a directory /usr/ports/net/jftpgw/patches and place the two patch files in this directory.

Patch Dates from Against Notes
jftpgw-20020130-1138.tgz 2002/01/30 11:38 jftpgw 0.12.0 First release.
jftpgw-20020822-1504.tgz 2002/08/22 15:04 jftpgw 0.12.0
This adds a new keyword “transparent-nousermodify” (a boolean), which, if enabled, prevents the transparent-forward functionality from modifying the username prior to logging into the server.

popa3d fix

This patch lets popa3d as shipped with OpenBSD 3.2 use the pop3 port from the /etc/services file, as documented in popa3d(8). This allows you to let popa3d listen on a port other than the default (110) by altering this file.

Patch Dates from Against tree Notes
popa3d-20021203-1035.tgz 2002/12/03 10:35 OpenBSD 3.2-stable 2002/12/03 10:30 First release.

OpenSSL fix

This patch fixes a memory reallocation problem in the OpenSSL shipped with OpenBSD 3.4. This problem was confirmed by levitte [at] openssl.org.

Patch Dates from Against tree Notes
libssl_mem.c-20030930-1201.tgz 2003/09/30 12:01 OpenBSD 3.4-stable 2003/09/29 10:30 First release.

arpwatch 2.1a11 fix

This patch fixes a minor issue with arpwatch 2.1a11, where sendmail would log a "Filedescriptors missing on startup: stderr" warning every time a report was sent by arpwatch.

Patch Dates from Against tree Notes
arpwatch-2.1a11-20031016-1158.tgz 2003/10/16 11:58 OpenBSD 3.4-stable 2003/09/29 10:30 First release.