Darren Tucker's Miscellaneous Patches

Patches for stuff that doesn't fit elsewhere.

(See openntpd/patches/ for various patches to OpenNTPD.


Add support for Linux PPPoE interfaces to tcptraceroute-1.4. Requires libpcap-0.7.1 or greater to work.

Add autoconf support to tcptraceroute-1.4. To use, apply this patch then run make -f Makefile.in distprep or autoreconf , then ./configure && make .


BusyBox is a multi-call binary suitable for use in embedded systems.

busybox-0.60.5-tftpbcast.patch. This patch (optionally) enables the use of broadcast addresses with busybox's tftp client applet via a "-c" option.


Dropbear is a small SSH2 server written by Matt Johnston.

dropbear-0.40pre1-hpux.patch. This patch make is work on HP-UX (tested 11.00) and fixes (what I think is) a bug in the prngd interface. The patch will also apply to the current stable version (0.39) with some fuzz.


resetpwtime.c Reset an account's password change time on HP-UX.
iscomsec.c Show whether or not a system is in Trusted Mode (aka Commercial Security).

The Tiny C Compiler (TCC)

tcc-0.9.20-link-order.patch Make tcc library searches behave like gcc

Test harness for Pluggable Authentication Modules (PAM)

pam-test-harness.c: a heavily-instrumented PAM test application, intended to help debug PAM/sshd problems and study the behaviour of PAM on various platforms. It also seems to be useful for testing and debugging while developing PAM modules.

You can control most aspects of the authentication, including not setting the various options (the PAM service name, PAM_TTY, PAM_RHOST, PAM_USER) and skipping the pam_authenticate call (this is common in sshd for non- password authentications, but can confuse some modules).

Here is a complete example of it in action, authenticating the user "testuser" via the sshd stack:

# ./pam-test-harness -?
usage: pam-test-harness [-?ahrt] [-s servicename] [-u user]

        -a: Skip pam_authenticate
        -h: Don't define PAM_RHOST
        -r: Don't define PAM_RUSER
        -t: Don't define PAM_TTY

# ./pam-test-harness -u testuser -s sshd
$Id: pam-test-harness.c,v 1.5 2004/05/30 14:27:42 dtucker Exp

pam_start(sshd, testuser, ...) = 0 (Success)

pam_set_item(pamh, PAM_TTY, /dev/pts/7) = 0 (Success)

pam_set_item(pamh, PAM_RHOST, gate) = 0 (Success)

pam_set_item(pamh, PAM_RUSER, dtucker) = 0 (Success)

pam_authenticate(pamh, 0)
    conversation called with 1 messages
        PROMPT_ECHO_OFF: Password: mypassword
 = 0 (Success)

pam_acct_mgmt(pamh, 0)
    conversation called with 1 messages
        TEXT_INFO: Warning: your password will expire in 13 days
 = 0 (Success)

pam_open_session(pamh, 0)
    conversation called with 1 messages
        TEXT_INFO: This is motd
    conversation called with 1 messages
        TEXT_INFO: Last login: Mon May 31 00:41:29 2004 from gate on pts/7
    conversation called with 1 messages
        TEXT_INFO: You have old mail in /var/mail/testuser.
 = 0 (Success)

pam_setcred(pamh, 0) = 25 (Please ignore underlying account module)

pam_get_item(pamh, PAM_USER, ...) = 0 (Success)

PAM_USER = testuser (unchanged)

Standard environment variables

PAM environment variables

uid 0 euid 0 gid 0 egid 0
pam_end(pamh, 0) = 0 (Success)

pam_echo for LinuxPAM

pam_echo.c: FreeBSD's pam_echo ported to LinuxPAM. Can optionally send multiple PAM_TEXT_INFO messages (useful for testing PAM applications).

pam_faildelay module for LinuxPAM

pam_faildelay.c: Allow an admin to change the setting of LinuxPAM's pam_fail_delay from the PAM configuration file, possibly on a per-application basis. It was written to make a point, but then someone from Debian wrote a man page for it and now ships as part of LinuxPAM.


Make top 3.5 build on AIX with gcc.


Make GCC 3.4.x build on AIX 4.2.1


A small C program to set the time and cleaning schedule on a Roomba 530 (and possibly other models) via a serial cable. Alpha quality at best since I stopped working on it once my roombas were programmed for scheduled cleaning. Current code is on Github.


A small program that waits for OpenSSL's random number generator to be ready. Useful for systems relying on prngd to make sure it's available before starting sshd.

Valid HTML 4.01!

Page last modified: $Date: 2022-05-25 $