]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/Unsubscribe.pm
www: use WwwStream for dumping thread and search views
[public-inbox.git] / lib / PublicInbox / Unsubscribe.pm
index 97ff97f66eda6729ae42075c28b0e8174e9ed597..79234aa170aeb20a6cae3b5eff03b4e7d475cae7 100644 (file)
@@ -77,11 +77,12 @@ sub _user_list_addr {
                        'Missing mailing list name in path component');
        }
        my $user = eval { $self->{cipher}->decrypt(decode_base64url($u)) };
-       if (!defined $user || index($user, '@') <= 1) {
+       if (!defined $user || index($user, '@') < 1) {
                my $err = quotemeta($@);
                my $errors = $env->{'psgi.errors'};
                $errors->print("error decrypting: $u\n");
                $errors->print("$_\n") for split("\n", $err);
+               $u = Plack::Util::encode_html($u);
                return r($self, 400, 'Bad request', "Failed to decrypt: $u");
        }
 
@@ -157,7 +158,7 @@ sub archive_info {
        }
 
        # protocol-relative URL:  "//example.com/" => "https://example.com/"
-       if ($archive_url =~ m!\A//!) {
+       if ($archive_url && $archive_url =~ m!\A//!) {
                $archive_url = "$env->{'psgi.url_scheme'}:$archive_url";
        }