lib/PublicInbox/LeiToMail.pm | 3 ++- diff --git a/lib/PublicInbox/LeiToMail.pm b/lib/PublicInbox/LeiToMail.pm index f0adc44f23e6088b13e40d43b01fec9fa1705c7d..8a2d9471f032f45f3d2efba36678c46d13f7f2a9 100644 --- a/lib/PublicInbox/LeiToMail.pm +++ b/lib/PublicInbox/LeiToMail.pm @@ -302,8 +302,9 @@ $dst .= 'cur/'; $rand = ''; do { $final = $dst.$rand.$common.':2,'.$sfx; - } while (!link($tmp, $final) && $! == EEXIST && + } while (!($ok = link($tmp, $final)) && $! == EEXIST && ($rand = _rand.',')); + die "link($tmp, $final): $!" unless $ok; unlink($tmp) or warn "W: failed to unlink $tmp: $!\n"; } else { my $err = "Error writing $smsg->{blob} to $dst: $!\n";