(Someone forgot whether their subroutine signaled errors by a NULL pointer return value, or a negative integer... I'm surprised gcc -Wall doesn't catch this...)