Bug 434529 - [p=reed r=bear r=timeless]

git-svn-id: svn://10.0.0.236/trunk@253042 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
reed%reedloden.com 2008-07-14 22:10:19 +00:00
parent fb8696c68a
commit c122e3778d
2 changed files with 37 additions and 34 deletions

View File

@ -51,13 +51,15 @@ sub Error {
}
my ($url, $quote, $width, $height, $size );
my ($url, $safe_url, $quote, $safe_quote, $width, $height, $size );
if( $url = $form{"url"} ){
$quote = $form{"quote"};
$quote =~ s/[\r\n]/ /g;
$url =~ s/[\r\n]/ /g;
$safe_url = value_encode($url);
$safe_quote = value_encode($quote);
$width = "";
$height = "";
@ -74,34 +76,29 @@ if( $url = $form{"url"} ){
$height = $1;
}
if ($width eq "" || $height eq "") {
Error "Couldn't get image size for \"$url\".\n";
Error "Couldn't get image size for \"$safe_url\".\n";
}
# }
print "
<P><center><img border=2 src='$url' width=$width height=$height><br>
<i>$quote</i><br><br>
<P><center><img border=2 src='$safe_url' width=$width height=$height><br>
<i>$safe_quote</i><br><br>
";
if( $form{"submit"} ne "Yes" ){
my $u2 = $url;
my $q2 = $quote;
$u2 =~ s@&@&amp;@g; $u2 =~ s@<@&lt;@g; $u2 =~ s@\"@&quot;@g;
$q2 =~ s@&@&amp;@g; $q2 =~ s@<@&lt;@g; $q2 =~ s@\"@&quot;@g;
print "
<form action='addimage.cgi' METHOD='get'>
<input type=hidden name=url value=\"$u2\">
<input type=hidden name=quote value=\"$q2\">
<input type=hidden name=url value=\"$safe_url\">
<input type=hidden name=quote value=\"$safe_quote\">
<HR>
<TABLE>
<TR>
<TH ALIGN=RIGHT NOWRAP>Image URL:</TH>
<TD><TT><B>$u2</B></TT></TD>
<TD><TT><B>$safe_url</B></TT></TD>
</TR><TR>
<TH ALIGN=RIGHT>Caption:</TH>
<TD><TT><B>$q2</B></TT></TD>
<TD><TT><B>$safe_quote</B></TT></TD>
</TR>
<TR>
<TD></TD>
@ -313,7 +310,7 @@ sub URLsize {
my ($fullurl) = @_;
my $S = new IO::Handle;
$_ = $fullurl;
$_ = value_quote($fullurl);
if ( ! m@^http://@ ) {
Error "HTTP URLs only, please: \"$_\" is no good.";
}
@ -324,17 +321,18 @@ sub URLsize {
my $size="";
my ($newheight, $newwidth);
$_ = $them;
$_ = value_quote($them);
if ( m@^[^.]*$@ ) {
Error "Fully-qualified host names only, please: \"$_\" is no good.";
}
$_=$url;
my ($remote, $iaddr, $paddr, $proto, $line);
my ($remote, $safe_remote, $iaddr, $paddr, $proto, $line);
$remote = $them;
$safe_remote = value_encode($them);
if ($port =~ /\D/) { $port = getservbyname($port, 'tcp') }
die "No port" unless $port;
$iaddr = inet_aton($remote) || die "no host: $remote";
$iaddr = inet_aton($remote) || die "no host: $safe_remote";
$paddr = sockaddr_in($port, $iaddr);
$proto = getprotobyname('tcp');
@ -349,7 +347,7 @@ sub URLsize {
$_ = <$S>;
if (! m@^HTTP/[0-9.]+ 200@ ) {
Error "$them responded:<BR> $_";
Error "$them responded badly";
}
my $ctype = "";
@ -363,7 +361,7 @@ sub URLsize {
$_ = $ctype;
if ( $_ eq "" ) {
Error "Server returned no content-type for \"$fullurl\"?";
Error "Server returned no content-type for url?";
} elsif ( m@image/jpeg@i || m@image/pjpeg@i ) {
$size = &jpegsize($S);
} elsif ( m@image/gif@i ) {

View File

@ -46,7 +46,8 @@ my $error_guess = 0;
my ($args, $tree, $full_logfile, $linenum, $logfile);
my ($errorparser, $buildname, $buildtime, $numlines, $fulltext);
my ($enc_buildname, $brief_filename);
my ($enc_buildname, $enc_logfile, $enc_errorparser, $enc_buildtime);
my ($safe_buildname, $safe_buildtime, $brief_filename);
#############################################################
# CGI inputs
@ -56,6 +57,7 @@ if (defined($args = $form{log}) or defined($args = $form{exerpt})) {
my ($full_logfile, $linenum) = split /:/, $args;
($tree, $logfile) = split /\//, $full_logfile;
$tree = &require_only_one_tree($tree);
$logfile = shell_escape($logfile);
my $br = tb_find_build_record($tree, $logfile);
$errorparser = $br->{errorparser};
@ -66,14 +68,18 @@ if (defined($args = $form{log}) or defined($args = $form{exerpt})) {
$numlines = $form{numlines} if exists $form{numlines};
} else {
$tree = &require_only_one_tree($form{tree});
$errorparser = $form{errorparser};
$logfile = $form{logfile};
$errorparser = shell_escape($form{errorparser});
$logfile = shell_escape($form{logfile});
$buildname = $form{buildname};
$buildtime = $form{buildtime};
}
$fulltext = $form{fulltext};
$safe_buildname = value_encode($buildname);
$safe_buildtime = value_encode($buildname);
$enc_buildname = url_encode($buildname);
$enc_errorparser = url_encode($errorparser);
$enc_logfile = url_encode($logfile);
tb_load_treedata($tree);
@ -137,12 +143,12 @@ sub print_fragment {
print "\n";
my $heading = "Build Log (Fragment)";
my $subheading = "$buildname on $time_str";
my $subheading = "$safe_buildname on $time_str";
my $title = "$heading - $subheading";
EmitHtmlTitleAndHeader($title, $heading, $subheading);
print "<a href='showlog.cgi?tree=$tree&errorparser=$errorparser&logfile=$logfile&buildtime=$buildtime&buildname=$enc_buildname&fulltext=1'>Show Full Build Log</a>";
print "<a href='showlog.cgi?tree=$tree&amp;errorparser=$enc_errorparser&amp;logfile=$enc_logfile&amp;buildtime=$enc_buildtime&amp;buildname=$enc_buildname&amp;fulltext=1'>Show Full Build Log</a>";
my $gz = gzopen("$::tree_dir/$tree/$logfile","rb") or
warn "gzopen($::tree_dir/$tree/$logfile): $!\n";
@ -184,17 +190,16 @@ sub print_header {
}
my $heading = "Build Log ($s2)";
my $subheading = "$buildname on $time_str";
my $subheading = "$safe_buildname on $time_str";
my $title = "$heading - $subheading";
EmitHtmlTitleAndHeader($title, $heading, $subheading);
print "
<font size=+1>
<dt><a href='showlog.cgi?tree=$tree&errorparser=$errorparser&logfile=$logfile&buildtime=$buildtime&buildname=$enc_buildname&fulltext=$s1'>$s</a>
<dt><a href=\"showlog.cgi?tree=$tree&amp;errorparser=$enc_errorparser&amp;logfile=$enc_logfile&amp;buildtime=$enc_buildtime&amp;buildname=$enc_buildname&amp;fulltext=$s1\">$s</a>
<dt><a href=\"showbuilds.cgi?tree=$tree\">Return to the Build Page</a>
<dt><a href=\"addnote.cgi?tree=$tree\&buildname=$enc_buildname\&buildtime=$buildtime\&logfile=$logfile\&errorparser=$errorparser\">
Add a Comment to the Log</a>
<dt><a href=\"addnote.cgi?tree=$tree&amp;buildname=$enc_buildname&amp;buildtime=$enc_buildtime&amp;logfile=$enc_logfile&amp;errorparser=$enc_errorparser\">Add a Comment to the Log</a>
</font>
";
}
@ -206,7 +211,7 @@ sub print_notes {
my $found_note = 0;
open(NOTES,"<", "$::tree_dir/$tree/notes.txt")
or print "<h2>warning: Couldn't open $tree/notes.txt </h2>\n";
print "$buildtime, $buildname<br>\n";
print "$safe_buildtime, $safe_buildname<br>\n";
while (<NOTES>) {
chop;
my ($nbuildtime,$nbuildname,$nwho,$nnow,$nenc_note) = split(/\|/);
@ -259,8 +264,8 @@ sub print_log_section {
my $first_line = $line_of_interest - $num_lines / 2;
my $last_line = $first_line + $num_lines;
print "<a href='showlog.cgi?tree=$tree&logfile=$logfile&line="
.($line_of_interest-$num_lines)."&numlines=$num_lines'>"
print "<a href='showlog.cgi?tree=$tree&amp;logfile=$enc_logfile&amp;line="
.($line_of_interest-$num_lines)."&amp;numlines=$num_lines'>"
."Previous $num_lines</a>";
print "<font size='+1'><b>.<br>.<br>.<br></b></font>";
print "<pre>";
@ -281,8 +286,8 @@ sub print_log_section {
$gz->gzclose() if defined($gz);
print "</pre>";
print "<font size='+1'><b>.<br>.<br>.<br></b></font>";
print "<a href='showlog.cgi?tree=$tree&logfile=$logfile&line="
.($line_of_interest+$num_lines)."&numlines=$num_lines'>"
print "<a href='showlog.cgi?tree=$tree&amp;logfile=$enc_logfile&amp;line="
.($line_of_interest+$num_lines)."&amp;numlines=$num_lines'>"
."Next $num_lines</a>";
}
@ -351,7 +356,7 @@ BEGIN {
my $cvsblame = $out{error_guess} ? "cvsguess.cgi" : "cvsblame.cgi";
&tb_load_queryconfig();
my $query = $::global_treedata->{$tree}->{query};
$line =~ s@$q@<a href=$::QueryInfo{$query}{url}/$cvsblame?file=$out{error_file_ref}&rev=$::global_treedata->{$tree}->{cvs_branch}&mark=$out{error_line}\#$goto_line>$out{error_file}</a>@;
$line =~ s@$q@<a href=$::QueryInfo{$query}{url}/$cvsblame?file=$out{error_file_ref}&amp;rev=$::global_treedata->{$tree}->{cvs_branch}&amp;mark=$out{error_line}\#$goto_line>$out{error_file}</a>@;
}
if ($has_error) {