gitweb: cloud tags feature produces malformed XML for errors
From: Jonathan Nieder <hidden>
Date: 2016-06-15 22:50:41
(resending, censored for vger; sorry for the noise) Hi Jakub et al, Uwe Kleine-König wrote [1]:
I experiment with $feature{'ctags'}. After installing
libhtml-tagcloud-perl (0.34-1) and adding
$feature{'ctags'}{'default'} = [1];
to gitweb.conf and doing
mkdir ctags
echo Linux > ctags/Linux
in the only repository served by gitweb makes iceweasel barf on the
output (see attachment).
With chromium I get:
This page contains the following errors:
error on line 26 at column 6: XML declaration allowed only at the start of the document
Below is a rendering of the page up to the first error.
First, we hit
if ($show_ctags) {
my %ctags;
foreach my $p (@projects) {
foreach my $ct (keys %{$p->{'ctags'}}) {
$ctags{$ct} += $p->{'ctags'}->{$ct};
which produces a warning warning in error.log:
index.cgi: Argument "Linux" isn't numeric in addition (+) at /usr/share/gitweb/index.cgi line 4819.
in error.log. Then we hit git_show_project_tagcloud, which dies in
"$cloud->html_and_css($count);" with
HTML::TagCloud..
index.cgi: Can't take log of 0 at /usr/share/perl5/HTML/TagCloud.pm line 67.
For some reason, the result is an _embedded_ error page:
<form method="get" action="/gitweb/" enctype="application/x-www-form-urlencoded">
<p class="projsearch">Search:
<input type="text" name="s" />
</p>
</form>
Content-type: {a content type which shall not be named}
<?xml version="1.0" encoding="utf-8"?>
[...]
500 - Internal Server Error
So I suspect there are two bugs here.
Ideas?
Jonathan
[1] http://bugs.debian.org/616005