diff options
author | Eric Wong <e@80x24.org> | 2021-02-19 00:58:31 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2021-02-19 19:25:19 +0000 |
commit | 427552fcb34d117635225bb30836bbbae7d61590 (patch) | |
tree | 56a732aa7fffa8c25797040f1a99eacac014d825 /lib/PublicInbox | |
parent | 725fd624277364402a86262486cdb79458db4ed8 (diff) | |
download | public-inbox-427552fcb34d117635225bb30836bbbae7d61590.tar.gz |
link(2) may fail with errors other than EEXIST; just bail out since something is likely seriously wrong.
Diffstat (limited to 'lib/PublicInbox')
-rw-r--r-- | lib/PublicInbox/LeiToMail.pm | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/PublicInbox/LeiToMail.pm b/lib/PublicInbox/LeiToMail.pm index f0adc44f..8a2d9471 100644 --- a/lib/PublicInbox/LeiToMail.pm +++ b/lib/PublicInbox/LeiToMail.pm @@ -302,8 +302,9 @@ sub _buf2maildir { $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"; |