diff options
author | Eric Wong <e@80x24.org> | 2021-09-28 23:11:04 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2021-09-29 00:08:32 +0000 |
commit | a29d72521f20576916e4c407263566cfa972416b (patch) | |
tree | a5bb5d273007df9d490433fa5ef33b802695b037 /lib/PublicInbox/View.pm | |
parent | 205599c0814e1031760e54cce9d8880e747cbb08 (diff) | |
download | public-inbox-a29d72521f20576916e4c407263566cfa972416b.tar.gz |
SQLite files may be replaced or removed by admins while generating a large threads or mailbox responses. Ensure we don't hold onto DBI handles and associated file descriptors past their cleanup.
Diffstat (limited to 'lib/PublicInbox/View.pm')
-rw-r--r-- | lib/PublicInbox/View.pm | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm index 805e785b..069b9680 100644 --- a/lib/PublicInbox/View.pm +++ b/lib/PublicInbox/View.pm @@ -31,7 +31,9 @@ sub msg_page_i { my ($ctx, $eml) = @_; if ($eml) { # called by WwwStream::async_eml or getline my $smsg = $ctx->{smsg}; - $ctx->{smsg} = $ctx->{over}->next_by_mid(@{$ctx->{next_arg}}); + my $over = $ctx->{ibx}->over; + $ctx->{smsg} = $over ? $over->next_by_mid(@{$ctx->{next_arg}}) + : $ctx->gone('over'); $ctx->{mhref} = ($ctx->{nr} || $ctx->{smsg}) ? "../${\mid_href($smsg->{mid})}/" : ''; my $obuf = $ctx->{obuf} = _msg_page_prepare_obuf($eml, $ctx); @@ -70,7 +72,7 @@ sub msg_page { my ($ctx) = @_; my $ibx = $ctx->{ibx}; $ctx->{-obfs_ibx} = $ibx->{obfuscate} ? $ibx : undef; - my $over = $ctx->{over} = $ibx->over or return no_over_html($ctx); + my $over = $ibx->over or return no_over_html($ctx); my ($id, $prev); my $next_arg = $ctx->{next_arg} = [ $ctx->{mid}, \$id, \$prev ]; |