From b587bfbcbff710dc9667af85be6a2a619f918273 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Fri, 27 Aug 2021 22:03:02 +0000 Subject: [PATCH] www: avoid potential auto-vivification on ibx->{url} This may fix problems with the "all" link disappearing. Link: https://public-inbox.org/meta/CAMwyc-Tw=v5yT1U1U66GSwwTK8OJXv8_YDu-=oXbZO3tHSnYWw@mail.gmail.com/ --- lib/PublicInbox/Inbox.pm | 3 ++- lib/PublicInbox/WwwListing.pm | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/PublicInbox/Inbox.pm b/lib/PublicInbox/Inbox.pm index df140cac..b0bb9dcc 100644 --- a/lib/PublicInbox/Inbox.pm +++ b/lib/PublicInbox/Inbox.pm @@ -250,7 +250,8 @@ sub base_url { } # called from a non-PSGI environment (e.g. NNTP/POP3): $self->{-base_url} ||= do { - my $url = $self->{url}->[0] or return undef; + my $url = $self->{url} // return undef; + $url = $url->[0] // return undef; # expand protocol-relative URLs to HTTPS if we're # not inside a web server $url = "https:$url" if $url =~ m!\A//!; diff --git a/lib/PublicInbox/WwwListing.pm b/lib/PublicInbox/WwwListing.pm index 1bb5fbd0..ef9048b5 100644 --- a/lib/PublicInbox/WwwListing.pm +++ b/lib/PublicInbox/WwwListing.pm @@ -17,7 +17,7 @@ sub ibx_entry { my $desc = ascii_html($ce->{description} //= $ibx->description); my $ts = fmt_ts($ce->{-modified} //= $ibx->modified); my ($url, $href); - if (defined($ibx->{url})) { + if (scalar(@{$ibx->{url} // []})) { $url = $href = ascii_html(prurl($ctx->{env}, $ibx->{url})); } else { $href = ascii_html(uri_escape_utf8($ibx->{name})) . '/'; @@ -41,7 +41,7 @@ sub list_match_i { # ConfigIter callback return if $section !~ m!\Apublicinbox\.([^/]+)\z!; my $ibx = $cfg->lookup_name($1) or return; if (!$ibx->{-hide}->{$ctx->hide_key} && - grep(/$re/, @{$ibx->{url}})) { + grep(/$re/, @{$ibx->{url} // []})) { $ctx->ibx_entry($ibx); } } else { # undef == "EOF" -- 2.44.0