Here is a small program that shows the bug.
It exits without calling handler.
#include <stdio.h>
#include <signal.h>
void
handler(int i)
{
printf("Got signal %d\n", i);
}
int
main()
{
signal(SIGINT, handler);
printf("Waiting for Ctrl-C\n");
fgetc(stdin);
}