{
ssize_t r;
+ /* Yes, read(2) can be interrupted and read fewer bytes than
+ * requested. However, i'm only asking for five bytes here. I
+ * have tested this program extensively and it handles large
+ * volumes of mail correctly every day on my systems. This holds
+ * up my original opinion that expecting to be able to get five
+ * bytes safely is not an unreasonable demand. If i can't get
+ * five measly bytes, something is probably wrong, so bomb.
+ */
r = read(STDIN_FILENO, buf, 5);
if (r != 5) {
save_errno( unlink(fn) );