My Linux/UNIX software

Menu


Statistics

  • O2OO
    O2OO is a (OBD-II compliant) car diagnostic tool. It reads sensor data from a car into an sqlite database. It can then generate graphs of the data. That way you can analyse the behaviour of your car. This program should work with all cards made after 1996 (US) or 2001 (EU).
  • genstats
    Generates statistics (frequency table) on any textfile. Commandline parameters are similar to those of the 'cut'-command.
  • logintop10
    This tool generates top10 lists of the login-information from /var/log/wtmp
  • mboxstats
    This tool generates top10 lists of the messages in a message-file in mbox- or maildir format.
  • slst
    slst generates statistics from the output of syslog. With slst one can find tendencies and unexpected changes in the behaviour of the running processes.

Logging

Viewing

  • multitail
    A program which lets you view several files at once (like the original tail) in a windowed terminal-window (with ncurses). Colors can be used to emphasize lines.
  • andatool
    Andatool displays in realtime how often one or more regular expressions match with what scrolls-by in a logfile.
  • btail
    Btail monitors a logfile for specific events. To do this it uses a bayesian filter to determine what events are worth passing through and which should be suppressed.
  • lm-0.1.tgz
    This tool merges two or more logfiles into one. For this, it looks at the timestamp on every line. Logfiles must be in the format as generated by syslog. The program isn't "language-safe", so if the month-field is in a language different from English, it's not going to work. multitail can do all of this in realtime.
  • turbotail
    A drop-in replacement for the original (GNU-)tail program which uses the SGI FAM daemon (which is included in all major Linux distributions like Debian) instead of polling every second(!).

Generating

  • monproctime
    Show the cpu-time (user/sys, child, delta), vsize/rss (and delta) from a process, line by line.
  • acpitail
    acpitail shows in a tail-like way information off the battery-state, fan-states, temperatures, etc. of an ACPI capable system (mostly laptops).
  • boinctail
    BOINCTail displays the status of jobs running in the BOINC environment in a 'tail-like' way.
  • proctail
    proctail is like a line-oriented 'top'. It displays memory-usage, load and the processes which used cpu-time since the last check.
  • wtmptail
    Wtmptail is 'w' combined with 'tail': view users logging in and out.
  • acctail
    AccTail shows all processes that have exited together with all its resource usages.
  • MySQLtail
    MySQLtail does 'tail' on a table in a MySQL database.
  • sample_load
    An extremely flexible tool for logging the load of a Linux-system.

MultiMedia

  • blinkytape
    Software for the blinkytape.
  • cad3d_to_pov
    Converter for CAD-3D (v2) to Povray.
  • baa
    baa converts a bitcoin address to an audio-file.
  • staticvnc
    A static VNC server (shows only one image).
  • termcam
    Termcam invokes a program and then records its terminal-i/o into a series of png-files.
  • detect_faces
    Command line utility that detects faces in images.
  • soundeffects
    All kinds of sound-effects that can be applied from the command-line.
  • dattowav
    This program converts an ascii file with values (one per line) into an audio-file. That way you can listen to your data.
  • kinect2povray
    This program takes a picture from your Kinect and stores it as a Povray script.
  • crosseyer
    Crosseyer helps you generating stereoscopic images (red-green/red-cyan).
  • grabby
    Grabby is a program to fetch images from a video4linux2 compatible device like a webcam or tv-card.
  • soundsort
    Sort a list of audiofiles by how they sound like(!) and NOT by using their meta-data!
  • picturesort
    Sort a list of pictures by how they look like(!) and NOT by using their meta-data!
  • tickermesenseless
    tickermesenseless is a driver for 'led tickers'.
  • mp3info
    mp3info shows details of an mp3-file on the console.
  • ppminfo
    ppminfo shows details of an ppm-file on the console. It seems this is the only utility missing from netpbm.
  • lsmp3
    Lists mp3-files, with artist/genre/title/etc. if requested.
  • findmp3
    Find mp3-files by the artist, title, album, genre, etc. in a directory (and its subdirectories)!
  • UIM
    UIM stands for 'UNIX Image Manager'. It is an attempt of bringing the AIM ('Atari Image Manger') to the UNIX world. With UIM one can resize and filter images. One can also multiply, add, etc. etc. images with other images or a given value. UIM is meant for advanced image processing.
  • calcamp-0.1.tgz
    This program calculates with what factor an audio-sample should be amplified to get maximum volume. Usefull, for example, when used with the pvf-tools (included in the mgetty package). This program needs libSndFile.
  • dov4l2
    Tool for setting parameters on a video4linux2 device.
  • dov4l
    Tool for setting parameters on a video4linux device.
  • setov511
    Tool for setting parameters on a ov511 based webcam (or compatible).
  • setpwc
    Tool for setting parameters on a Philips (or compatible) WebCam.
  • shoutcastproxy
    ShoutCastProxy is a shoutcast-multiplexer. Multiple clients can listen to the same shoutcast-session using only the bandwidth of one!
  • listener
    A program which detects sounds and records them to wav-files.
  • motion
    Motion is a program for detecting moving things with a webcam or videocamera (securitycam software). It was not originally written by me, but since October 2003 it is maintained by Kenneth Jahn Lavrsen and me. You can find a preview here: motion-3.1.12rc1.tar.gz. Be warned: it may be unstable and such!
  • measurenoise
    Measurenoise is a tool for determing the 'noise threshold' for tools like motion.

Networking

  • rtr-0.1.tgz
    Rtr is a client for rtl_tcp (SDR over the network).
  • https2socks5
    This is a transparent https-via-socks5 proxy.
  • tft
    Tft (TCP Fragmentation Tester) is a program which sits between a client and a server application. It then fragments the TCP datastream. This is usefull for testing if your client/server application can handle real-life network situations.
  • sgwi
    Sgwi is a web-interface to SQLGrey (SQLGrey is a greylister for Postfix).
  • ir
    A plugin for squid proxy which redirects users who use the squid-proxy for the first time to a special page.
  • scan_virus.tar.gz
    This squid redirector checks every file with one or more virusscanners and if a virus is found, redirects the user to an other page.
  • status2xml.awk.gz
    Converts a Nagios 2.x 'status.log'-file to XML for easier parsing with other tools.
  • F-IRC
    An IRC client for terminals (terminal-mode).
  • recvnet-0.0.1.tgz
    recvnet is the inverse of telnet. Instead of connecting to some host, it listens on a port for incoming connections. When a connection is made, it works as usual.
  • tcping-0.1.tgz
    Like 'ping' but on TCP-level. It connects to a host (+portnumber) and disconnects. It then measures how long this takes giving you an idea of the latency of the tcp-service you're testing. Be aware that the transmission across the network also takes time!
  • doturl-0.1.tgz
    This program retrieves the URL from a Microsoft Internet Explorer .url-file (a 'bookmark' so to say) and displays it on your terminal. You can, of course, also use pipes and such (for in- and output).
  • gibberish-0.2.tar.gz
    With this tool you can test if your tcp-server can handle gibberish. For example a webserver: with this tool you can test if your webserver can handle it if someone sends gibberish instead of an http-request.
  • lithobiusforficatus
    A portforwarder with a menu. Handy when using from a shell-account and without root-privileges.
  • msn2mail-1.0.tgz
    An MSN-to-e-mail gateway (needs fvhlib).
  • cloudish
    cloudish - a distributed anonymizer.
  • TINC mini-howto
    A mini-HOWTO for TINC, for the impatient.
  • MXM
    I wrote a replacement for sendmail specifically aimed at dial-up users and/or small domains.
  • SNA
    My SNA-for-Linux project. It is abandoned since www.linux-sna.org now provides a complete GPL version. Update: linux-sna.org seems to be down. If anyone has the sources published on that site, please contact me at: folkert@vanheusden.com!

Monitoring

  • sysopview
    The idea of SysopView is to show information that is important to system administrators while being showed attractively for non-technical personel. Think of the computerscreens in movies with the difference that SysopView shows real information.
  • monproctime
    Returns the number of jiffies cpu-time consumed by a certain proces in a given interval.
  • check_nagios_summary
    Enables you to do distributed monitoring with Nagios.
  • check_ntp_refclocks
    Checks if an NTP-instance has not more than 1 reference clock in 'INIT' (e.g. not reachable) state.
  • munin-wifi-plugin.tar.bz2
    Plugin for munin for monitoring (on Linux) the signal quality of a WiFi interface.
  • nagircbot
    NagIRCBot announces the Nagios status on an IRC channel.
  • nagtail
    NagTail is like tail on the Nagios status logfile.
  • nagserv
    Nagserv is an interface between the Nagios 2.0/3.0 status.log-file and programs like Nagwatch and older versions (< v0.71) of nsc. It can also act as an RSS feeder for the Nagios status.
  • nagcon
    Nagcon is a console application interfacing to Nagios which gives you an overview of all services with troubled services.
  • nagiosdigger
    Nagiosdigger is a web-frontend to the logging produced by Nagios.
  • check_smb
    A plugin for Nagios which checks if SMB (Samba for example) is running on a host.
  • check_spamc
    This little script can be used as a plugin for Nagios to check if the SpamAssassin 'spamd' process is still running and accepting connections and in general working as expected.
  • check_papouch_tme.gz
    This script can be used with Nagios and the Papouch TME ethernet temperature sensor to see if the temperature is between limits.
  • tcping
    Tcping measures the latency of a tcp connection.
  • httping
    Like 'ping' but for http-requests. Give it an url, and it'll show you how long it takes to connect, send a request and retrieve the reply (only the headers).

Security

  • Entropy Broker
    Entropy Broker is an infrastructure for distributing cryptographically secure random numbers (entropy data) from one or more servers to one or more clients.
  • timer_entropyd
    A program which adds entropy-data to the kernel-random-driver by measuring timers.
  • video_entropyd
    A program which adds entropy-data to the kernel-random-driver which it fetches from a video4linux-device.
  • audio_entropyd
    A program which adds entropy-data to the kernel-random-driver which it fetches from a audio-device.
  • libprngwrap
    Libprngwrap is a preload library which forces all applications and daemons to use the /dev/urandom device instead of [s]rand, [s]random, [*]rand48(), etc.
  • cryptosync
    Cryptosync is tool which makes compressed and encrypted incremental backups. That way one can efficiently copy the files to an other location with normal rsync. Not only the filecontents is encrypted, also the filename, mode, owner and groupinformation are stored encrypted.
  • fix_ring-0.2.tgz
    This program can automatically "fix" GPG key-chains by removing the damaged/corrupted keys (or parts of keys).
  • gpgstats
    GPGstats calculates statistics on the keys in your key-ring.
  • nasty
    Nasty helps you recover forgotten GPG-key passphrases.
  • libsd
    libsd is a library which makes ALL your applications doing secure deletes without changing a single line of code!
  • Linux kernel security patch
    The vanheusden.com Linux-kernel security patch.
  • security
    Collection of security related things. It is actually a "remember this"-page for me which I use when installing a new Linux system :o) Can still be usefull for others, though.
  • entropy
    Tools for adding entropy-data to the entropy-spool of the /dev/[u]random-device and evaulating RNGs.

Miscellaneous

  • kids
    Software for children.
  • fill0x00-0.1.tgz
    Fills the current disk with 0x00. Usefull to run before archiving a virtual machine disk (0x00 compresses better than left-over data).
  • svntale
    Graphs the revision history of an SVN repository.
  • miep
    Miep might (I work occasionally on it so don't hold your breath) become an SGI Indy emulator capable of running Irix.
  • inwait-0.1.tgz
    This program waits for filesystem events (file create, delete, directory access, etc.) using the inotify interface. It is meant to be used in shell-scripts. It is more efficient than polling loops.
  • busyloop-0.1.tgz
    This program is a busy loop for a configurable duration for a configurable number of cpus/cores. You can also select between integer or integer + floating point calculations. I use this myself to make sure the processor(s) are running it 100% speed before I start any benchmark.
  • nbd-verify
    nbd-verify verifies if an NBD server handles the protocol and storage correctly.
  • bdt
    bdt can be used to verify if a blockdevice stores and reads the data correctly which is written to it.
  • crandon
    Crandon is a CRON-like scheduler with the difference that it runs at random intervals.
  • Jans
    Jans is an unusual NTP server: it can return the systemclock time (and just that) but it can also return blatantly incorrect time.
  • measurecopy
    With measurecopy one can determine how long it takes to write data to a device. This can be draw on a graph.
  • benfordcheck
    BenfordCheck does a check on the values found in a file to see if they're real data or cooked ("Benford's Law").
  • iops
    Iops lets you measure how many I/O operations per second a storage device can perform.
  • katjaschuurman
    katjaschuurman is an IRC chatter-bot that is (somewhat) capable of learning.
  • ibuddy.py.gz
    Command-line enabled tool to animate your USB i-Buddy device.
  • tcpconsole
    tcpconsole is an emergency console.
  • MSX emulator
    Emulates an MSX.
  • OmniSync
    OmniSync allows you to sync the clock against the daytime service (port 13 tcp/udp), time (port 37 tcp/udp), SNTS, ICMP, SNMP, http and https (both also via proxy server).
  • confft
    This program calculates a fourier transform on its input data.
  • randommover
    Randomize the order of files in a directory for usage with the memory-card of a digital photo frame.
  • lpc-ntpd
    Driver to interface a Lindy precision clock to the NTP daemon reference implementation.
  • consolecandy
    ConsoleCandy is an mp3 player for the console (or a terminal window) with eye-candy.
  • memlib
    Memory leaks finding helper library.
  • ppmtoansi
    ppmtoansi converts a ppm-file to ansi text output e.g. colorized text.
  • bsod
    Bsod displays the famous windows xp blue screen of death on the console.
  • banihstypos
    Program which helps you improve your typing speed.
  • waitforsocket-0.1.tgz
    Wait for socket is like waitfordevice: it waits for a TCP port to become available. Usefull when for example waiting for MySQL to become available before snort is started.
  • w4d
    waitfordevice is a tool which checks and waits for a device to become available (for example a webcam).
  • fv
    'fv' is a program which uses a crude method for finding 'magical squares'.
  • optimizing MySQL
    On this page I collect tips & tricks on how to optimize your system for running MySQL. Some tips are in general usefull for optimizing your system.
  • listenpipe
    Listenpipe can be used to sit between 2 applications that are interfaced with pipes. It will pass through data as is but also store what is send/received in a logfile as well.
  • autoplay
    Autoplay connects two xboard/winboard protocol complaint chess engines and lets them play against each other.
  • procbind
    This tool lets you bind a process to a specific processor.
  • RSSTail
    RSSTail is more or less an rss reader: it monitors an rss-feed and if it detects a new entry it'll emit only that new entry.
  • om-0.1.tgz
    A script which cleans up and optimizes your MySQL databases.
  • pushmem-0.1.tgz
    Not very usefull program which tries to push as much memory pages to swap as possible.
  • acovea_intel_c_compiler_configs.tgz
    Configurationfiles to use with Acovea to test what the most optimal compiler flags are for the Intel c compiler for Linux.
  • memtee
    memtee is a replacement for 'tee' in situations were no read-write mounted filesystem is available. In such a case memtee buffers all output into memory and when it receives the TERM-signal, it writes that buffered data into a file.
  • clewarecontrol
    Clewarecontrol lets you control the USB-devices made by Cleware GmbH.
  • LCDFun
    Program for displaying all kinds of texts on a CW1602 LCD panel.
  • dumpgdbm-0.1.tgz
    Dumps the contens of a GDBM database.
  • rud-0.0.2.tgz
    Resets an USB device. Requires libusb.
  • scsiunlock-0.0.1.tgz
    SCSIUnlock unlocks a SCSI device. For example a CD-ROM tray.
  • scsiping-0.0.1.tgz
    SCSIPing pings a host on the SCSI-chain. Usefull for testing the latency of the device AND (=plus) the controller(!). WARNING: only run this program on devices with no mounted partitions (including swap) as I'm not sure if this program interferes with anything. Only run this when you know what you're doing!
  • recoverdm
    Tool for recovering damaged media.
  • findfile
    These programs are for recovering files from filesystems with directorystructures which are beyond repair. For example memory cards for digital cameras.
  • peekpoke-0.1.tgz
    With peekpoke, one can set/read I/O ports from the commandline/scripts. Of course, one needs to have root privileges.
  • unsort
    Randomizes the order of lines in a textfile. The inversion of sort so to say :-)
  • memtest 1.0
    A memory tester. This one tries to keep all pages in memory so that you can be sure that allmost all (not all: some pages are nonpageable pages used by the kernel) physical(!) pages are touched (and tested).
  • phantom
    A tool for introducing phantomblocks in the file-system. Handy when low on disk-space.
  • truncate
    This one truncates a file to a given size. The new size can be 2^64-1 maximum (altough your operating system must support it). Truncating a new file can be quite a bit faster then using dd if=/dev/zero ... (for a loopback filesystem for example).
  • fractals
    Fractals.
  • chess
    My chess-software.
  • testncurses-0.1.tgz
    Displays the capabilities of ncurses on your terminal/console.

Patches

How to patch:
Go into the directory of the program to patch, and then:
zcat patchfilename.gz | patch -p1

Linux kernel/drivers patches

Fixes

Enhancements

  • nagios-plugins-standard-1.4.1.diff.gz
    This patch makes check_ssh and check_procs emit 'performance data' as well. Usefull in company with pnp4nagios.
  • axlisten.patch.gz
    Patch for axlisten (ax25-apps v0.0.6) so that axlisten won't occasionally exit with an 'interrupted' error.
  • mysqlard-1.0.0-reconnectdb.patch.gz
    This patch lets mysqlard open and close the database for each iteration. That way you don't need to restart it whenever mysql is restarted.
  • open3600-fastsystems.diff.patch.bz2
    Patch against open3600 to make it work on fast systems as well by replacing a busy-loop with a nanosleep systemcall.
  • mvdsv patches
    Enhancements for the QuakeWorld server.
  • openssh-5.1p1_writepidfile.diff.gz
    Patch against OpenSSH 5.1p1 adding a '-z pid_file' switch which makes it write its pid to a file. This is usefull when using the openssh '-f' flag which daemonizes the ssh-process.
  • sysrqd-9.diff.bz2
    Patch against sysrqd v9: fixed password-entry check (original version would allow e.g. 'tester' when the password was 'test'), fixed a potential busy-loop, now locks itself into memory (to prevent from being swapped out), now sets its priority to maximum (in case the system has a runaway process).
  • ppsldisc.patch.bz2
    Patch to make ppsldisc (Linux PPS patch) behave like a more UNIX-like daemon (forks itself into the background and writes pid to a file).
  • nut-2.2.1-konig-diff.bz2
    Patch against NUT (Network UPS Tools) to support Konig CMP650 UPSes.
  • wine
    Tools/patches for Wine (the windows-emulator for Unix).
  • aud-0.0.0.patch.gz Patch against audio-entropyd-0.0.0 Since that version, Udo van den Heuvel and I almost completely rewrote audio-entropyd. You can find the latest version here (the original writer doesn't maintain it anymore)
  • vttest-lin.tgz Not really a patch, but a patched version of 'vttest', a tool for testing the correct interpreting of the vt100 codes by your terminal. The patch was needed to get it to compile. Be warned; it won't work 100% since it uses some obsolete unsupported system-calls. Found the original file at Ralf Brown's site (the man who wrote the Ralf Brown-interrupt-list).
  • zcip - zcip is a daemon which automatically configures your network including an IP-address in a way as defined here. This method is compatible with windows and MacOS. Anyway, I wrote a patch which disables setting the default-route: zcip-4.nodefroute.diff.gz. The following patch not only contains the previously mentioned patch, it also contains code for a simplified "become daemon"-process, a fix for seed_rng() which would sometimes fail and code that stores the last used IP-address in a file (and reads it back when restarting). The patch: zcip-4.diff.gz
  • clrngd.tar.gz - this patch adds code to clrngd so that it will fork itself into the background. This tar-ball also contains a Makefile (the original distribution did not). clrngd, by the way, is a daemon which adds entropy to the kernel entropy-driver-buffers which it creates by looking at the differences between several clocks in your workstation/server
  • dircproxy-1.0.5.diff.gz - this patch adds code so that you can specify the adapter to which dircproxy should bind to; good for security!
  • motion-3.0.5.diff.gz - this patch adds a configuration parameter "syslog" to motion. If enabled, motion will then log in syslog when it starts up, exits, when it detects motion and when errors occur. This patch also fiddles with socket-fd's so that you no longer get this annoying bind-problem ("socket already in use") when starting motion very quick after stopping it. Also a small performance improvement was made. Solved a problem when using certain versions of GLIBC, it would not create directories. This was caust by incorrect usage of sprintf(). Furthermore: set temporary buffers for filenames to correct max. size (PATH_MAX) instead of 255.
  • ftplib-3.1.diff.gz - ftplib 3.1 contains a problem that when an interrupt occurs (like a signal) during I/O to the ftp-server on the other end, communication may fail. This patch solves that.
  • identd.diff.gz - A patch against Fake Identd v1.7 which fixes a bug in the daemonizing-process, fixes the error-handling, adds errorhandling and fixes a bug when the select()-call failes. Oh, it also adds a makefile.
  • wtail-0.1.4.diff.gz - Patch against wtail-0.1.4: now key checks occur at the same time as the checks for new data in the file giving a quicker response to keypresses. Also, at the start not the whole file is being read and displayed, only the data that would (+/-) fit on the screen: VERY usefull when using on a file of a couple MB through some wacky telnet-connection!
  • wtail-0.2.1.diff.gz - same patch as the one mentioned above. This one is against version 0.2.1 of wtail. You might be interested in multitail: same thing as wtail, only faster, has terminal-resize and color-support.
  • smstools-1.8.0.diff.gz - patch against SMS Server Tools v1.8.0. The program could fail while it was moving a file: if the destination-partition is, for example, full, bad things could happen (the program could ultimately crash). Furthermore, I changed some buffer-sizes to PATH_MAX so that they have the correct length for filenames. smsd did not check if a memory-allocation call succeeded or not.
  • bzip2-1.0.2.diff.gz - patch against bzip2 v1.0.2. This patch implements a progress counter (in %). It also display the percentage of the original file the new file is (size).
  • bzip2-1.0.2-v2.diff - Version 2 of this patch. This one handles files > 4GB as well. Modified by Justin Binns.
  • ipfm-0.11.5.diff.gz - patch against IPFM v0.11.5: added html-output (automatically if filename ends in .htm(s)), couple of small optimalisations and a fix which prevents unmounting problems when ipfm isn't started from the root-partition
  • tcpsg-0.0.2.diff.gz - patch against TCPSG v0.0.2: one can now give the filename for the configurationfile to use without patching the sourcecode
  • ample-0.4.0.diff.gz - patch to Ample: mp3 list is loaded at start, not when a client connects (to prevent timeouts when loading huge lists), adds an intro mp3-file to every new connection (intro=/path/to/file.mp3 in configuration) and a commercial (commercial=/path/to/file.mp3 and commercial_interval=number_of_seconds)
  • coreutils-5.2.1_dd.patch.bz2 - adds progress output to 'dd'
  • pgn-extract-0.15.diff.gz - adds a '-Wphalg=[PNBRQK]' to pgn-extract: this switch is like -Whalg but with a character in front of the move telling what object-type was moved (rook, pawn, etc)
  • smstools-1.16.1.measure.patch.gz - patch which enables smstools to write the measured signal strength to a logfile
  • atop-1.15.patch.gz - patch against atop which makes the screenredraws a lot smoother
  • nagwatch-0.2-notification.diff.gz - patch agains nagwatch v0.2 which makes it only display services/hosts which have notifications enabled
  • pink.diff.gz - patch against the Pink IRC bot so that it keeps it mysql connection when a channel is idle longer then the mysql timeout
  • icsDrone-1.5.0.patch.gz - patch against icsDrone v1.5.0: this version would mangle castling when the "long move notation" was enabled (which is required for POS 1.4)
  • inotail-buffer-size.diff.gz - patch against inotail which makes it use the optimal buffer size for I/O on the filesystem in which the file to be tailed is located
  • snts-1.0.4-timerbug.diff.bz2 - sntsd would sometimes not run because a structure was not correctly initialized, this patch fixes that
  • nrpe-2.11-AIX.diff.gz - patch to make the Nagios NRPE agent compile under AIX (using the GNU-C compiler)

Code cleanups

  • fakebo-0.4.1.diff.gz - this patch simplifies some of the fakebo startup-code (in which it becomes a daemon-process)
  • icqmail-1.2.diff.gz - this patch simplifies some of the icqmail startup-code (in which it becomes a daemon-process)
  • smartmontools-5.0-26.diff.gz - this patch simplifies some of the smartmontools startup-code (in which it becomes a daemon-process)
  • p0f-1.8.2.diff.gz - this patch adds code to p0f so that it will fork into the background
  • vpnd-1.1.0.diff.gz - this patch simplifies some of the vpnd startup-code (in which it becomes a daemon-process). It also solves some bugs which can improve the stability of a link quite a lot!
  • procps-3.1.5.diff.gz - several of the utilities in the original package may break in a strange way when they receive a signal: frequently, a read() (or write) call was not checked for rc==-1 && errno==EINTR also several malloc-calls where not checked for NULL (same thing for strdup)
  • sysklogd-1.4.1.diff.gz - Patch against sysklogd-1.4.1 The parent-process would only wait 5 minutes before it would exit. I made that wait-time infinite, because it *might* be possible to DOS (denial-of-service) the machine so that starting up would take longer. recv/read/write/recvfrom/sendto can return with errno set to EINTR, in that case, you should just try again! On some places, memory allocations where not checked if they succeeded or not on several places, the destination-string when doing strncpy was not terminated. that's neccessary (to be sure) because: from the strncpy man-page: "...Thus, if there is no null byte among the first n bytes of src, the result wil not be null-terminated."
  • pfinger-0.7.10.diff.gz - Patch against pfinger v0.7.10, fixes: buffer overflow for systems which do not have strdup, made a buffer a little smaller :-), changed buffersize for a filename to PATH_MAX handle-leak when loading fingerconf, extra logging when unable to open files, end string with 0x00 when strftime fails and/or when no getdomainname function exists extra logging when no memory is available for malloc/calloc, checking for NULL when allocating memory in some places handle-leaking when forwarding, ehr, something
  • microcode_ctl-1.06.diff.gz - patch against microcode v1.06 - the original code is, in my opinion, almost perfect. I found only 2 things that I thought need some modifications: 2 buffers for filenames where set to 2048 bytes instead of 'PATH_MAX'. Fixed :-)
  • gofish-0.14.diff.gz - this patch simplifies some of the gofish Gopher-server startup-code (in which it becomes a daemon-process). It also fixes some read()/write() calls; this patch should make gofish in certain situations much more stable. Feb 25, 2003: Gofish might have become a little bit faster through this patch: the kernel is now informed how files are processed so that it can anticipate on that.
  • squirm-1.0betaB.diff.gz - a couple of small fixes on Squirm 1.0betaB: a couple of array-out-of-bounds and a strdup() which is not checked for NULL
  • iptraf-2.7.0.diff.gz - patch against IPTraf v2.7.0: fixed a couple of potential segmentationfauls when running low on memory or when resizing the terminal when using an older ncurses version
  • bitchx.patch.gz - patch to get BitchX to compile (fixes the 'pasting "status_user0" and "(" does not give a valid preprocessing token' compilation errors)
  • sysklogd-sql-1.4.2.patch.gz - patch to sysklogd-sql to split up the message into a process-name, the pid and the message-text itself

Tests/experiments

  • miningco
    Miningco is an automatic data-mining tool.
  • ircminer
    IRC-miner finds similarities in the words used by people in an IRC-channel. That way one might be able to correlate nicknames and find people who use 2 (or more) nicknames.
  • stopmotion-0.1.tgz
    This tool keeps all pages 'hot' of a memory block. It was written to see if VMware ESX 'vmotion' could handle such a vm easily.
  • rename_test-1.1.tgz
    A tool for kernel-hackers: with this one you can test how fast the kernel can rename files on a certain filesystem.
  • mem_stress_test-0.1.tgz
    Another tool for kernel-hackers: this stresses the memorysubsystem. In a tight loop it frees, allocates, resizes and touches memory-blocks.

Links

not designed nor developed by me

Check out my united states Mega Millions lottery winning help page