From: Eric Wong <e@yhbt.net>
Date: Fri, 3 Apr 2020 05:06:59 +0000 (+0000)
Subject: view: handle the topic-free case properly
X-Git-Tag: v1.4.0~32
X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=fc92ce8845ac5f09939722537624fa48441f7c0b;p=public-inbox.git

view: handle the topic-free case properly

There may be no topics for a given timestamp range,
so don't attempt to treat `undef' as an arrayref.
---

diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm
index 89174296..c42654b6 100644
--- a/lib/PublicInbox/View.pm
+++ b/lib/PublicInbox/View.pm
@@ -1056,7 +1056,7 @@ sub acc_topic { # walk_thread callback
 sub dump_topics {
 	my ($ctx) = @_;
 	my $order = delete $ctx->{order}; # [ ds, subj1, subj2, subj3, ... ]
-	if (!@$order) {
+	unless ($order) {
 		$ctx->{-html_tip} = '<pre>[No topics in range]</pre>';
 		return 404;
 	}
diff --git a/t/psgi_v2.t b/t/psgi_v2.t
index 2c9387a4..c4f80869 100644
--- a/t/psgi_v2.t
+++ b/t/psgi_v2.t
@@ -250,6 +250,8 @@ test_psgi(sub { $www->call(@_) }, sub {
 		is($old->content, 'old', 'got expected old content');
 		is($new->content, 'new', 'got expected new content');
 	}
+	$res = $cb->(GET('/v2test/?t=1970'.'01'.'01'.'000000'));
+	is($res->code, 404, '404 for out-of-range t= param');
 });
 
 done_testing();