Theo's Various Projects/Patches

---------------

I decided to quickly poke through the source code of ProFTPd to see if I could find any obvious Y2k issues. I only found one where instead of setting "struct tm"'s tm_year variable to "year-1900", it was being set to "year % 100". This patch fixes that. (This patch is included in the upcoming 1.2.0pre10 release.)

In this version of tin, they decided to add in a preference that tin will auto-abort an article post or mail reply if the file w/ the text wasn't modified (different file size) when you edit the file. I personally don't like this preference, so this patch will allow you to disable the auto-abort at compile time.

The Perl Power Tools project is an attempt to rewrite most of the useful UNIX tools in Perl. Since Perl is my favorite of all languages, I decided to chip in some time and churn out some code. Unfortunately, I don't have quite as much free time as I'd like, but ...

This script will show you a countdown to certain events. It can either display in HTML or from the commandline (HTML does tend to look better).

This script will automatically generate the reverse (IN PTR) maps from forward (IN A) maps. Lets you only have to edit one file instead of two.

This script will minimize the number of entries in an access database as used by sendmail 8.9.x.

I know that the hlt comes with a bunch of UNIX software to do most things that I'm working on -- but my stuff is all in Perl (hence completely cross-platform), and lets me design the entire logging/graphing business.

Hot Little Therm is a nifty little gadget from the guys at spiderplant. Basically, it's a chainable thermometer set that attaches to your serial port (up to 256 temperature probes are individually accessible). I wrote a quick little Perl script to batch retrieve the hlt data from the serial port and print a little display on your screen.

This is a pretty useless program actually... It'll overwrite a file with random fish names... Kinda silly, but it's better than doing Differential Equations, so ...

Note: I wrote this when I was just starting with perl, so there are various parts which could be much more efficient.

This program will allow users to create their own groups and administrate the groups themselves. This is good for project groups and such as you can create a group work directory so all the group members can share the work.

Note: This was also written when I was just learning perl, so there are parts which are not-super efficient, and although I tried my best, there are other parts which are probably lacking a little in the security area.

Spanner is my personal web spider. It's currently is a working beta form, used to create the information that is indexed for the kluge.net search engine. It will be robots.txt compliant when I'm finished coding it in ... It'll also be modular enough to act as a information spider/gatherer, link checker, etc.

The 'suExec' program comes with the Apache Web Server, and allows users to execute CGI and SSI programs as their own UID/GID instead of the default web server IDs. The problem (suExec w/ Apache 1.3b2 and earlier) was that suExec didn't expect the specified program to have any parameters, so a call to something like 'counter -font greenmarble' would be treated as a single command. This would cause the suExec calls to the lstat() and execv() system calls to fail. My supplied patch adds in support for commandline parameters.

I upgraded to Dillon's cron from Vixie cron due to some security problems, and various other issues. However, when checking my cron logs, I noticed that the log entry for all programs was "USE". After poking around, I found the error within two functions in the subs.c file. This patch will fix the error.


Now obsolete patches:

After upgrading to glibc 2.0.6, and recompiling the procps package, I noticed that the 'w' command was showing misformatted information due to an oversized host field. This patch corrects this bug by limiting the host display to only 16 characters. This patch also adds some extra parens to avoid getting warnings when compiling with gcc 2.8.0.

For the same reasons as the 1.2.4 patch above, this patch is for 1.2.6. I was told 1.2.6 fixed the host printing problem. It's close, but didn't actually fix it.

This patch fixes a small problem when trying to compile GNU findutils 4.1 on a system which has the basename function already defined (glibc 2.0.6 in my case.)

'su' is a program that allows users to change to a different UID under UNIX. I wrote this small patch for the GNU version of su (found in sh-utils v1.16) so that su will now make sure that the user is in the wheel group before allowing a change to UID 0 (root). I call this the 'de-stallmanize patch' ...

This patch fixes the "--with-logfile" and "--with-timedir" problems. It also adds the hostname to the log file (not syslog!) This is great if you have several systems logging to the same logfile, you can now tell which system the command was executed on. This patch makes it a configure option, not a default. Included in cu_sudo 1.5.6 and later.