===================================================================
RCS file: /cvs/cvsweb/cvsweb.cgi,v
retrieving revision 1.1.1.2
retrieving revision 3.15
diff -u -p -r1.1.1.2 -r3.15
--- cvsweb/cvsweb.cgi 2000/08/15 08:40:58 1.1.1.2
+++ cvsweb/cvsweb.cgi 2000/08/25 09:01:58 3.15
@@ -41,8 +41,8 @@
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
-# $zId: cvsweb.cgi,v 1.93 2000/07/27 17:42:28 hzeller Exp $
-# $kId: cvsweb.cgi,v 1.13 2000/08/15 08:35:51 knu Exp $
+# $zId: cvsweb.cgi,v 1.94 2000/08/24 06:41:22 hnordstrom Exp $
+# $Id: cvsweb.cgi,v 3.15 2000/08/25 09:01:58 knu Exp $
#
###
@@ -949,6 +949,10 @@ sub link($$) {
sub revcmp($$) {
my($rev1, $rev2) = @_;
+
+ # make no comparison for a tag or a branch
+ return 0 if $rev1 =~ /[^\d.]/ || $rev2 =~ /[^\d.]/;
+
my(@r1) = split(/\./, $rev1);
my(@r2) = split(/\./, $rev2);
my($a,$b);
@@ -1063,7 +1067,7 @@ sub doAnnotate($$) {
# make sure the revisions a wellformed, for security
# reasons ..
- if (!($rev =~ /^[\d\.]+$/)) {
+ if ($rev =~ /[^\w.]/) {
&fatal("404 Not Found",
"Malformed query \"$ENV{QUERY_STRING}\"");
}
@@ -1214,9 +1218,13 @@ sub doCheckout($$) {
my ($mimetype,$revopt);
my $fh = do {local(*FH);};
+ if ($rev eq 'HEAD' || $rev eq '.') {
+ $rev = undef;
+ }
+
# make sure the revisions a wellformed, for security
# reasons ..
- if (defined($rev) && !($rev =~ /^[\d\.]+$/)) {
+ if (defined($rev) && $rev =~ /[^\w.]/) {
&fatal("404 Not Found",
"Malformed query \"$ENV{QUERY_STRING}\"");
}
@@ -1252,7 +1260,7 @@ sub doCheckout($$) {
# Safely for a child process to read from.
if (! open($fh, "-|")) { # child
open(STDERR, ">&STDOUT"); # Redirect stderr to stdout
- exec("cvs", "-d", $cvsroot, "co", "-p", $revopt, $where);
+ exec("cvs", "-Rld", $cvsroot, "co", "-p", $revopt, $where);
}
#===================================================================
#Checking out squid/src/ftp.c
@@ -1369,9 +1377,10 @@ sub doDiff($$$$$$) {
$rev2 = $tr2;
$sym2 = "";
}
+
# make sure the revisions a wellformed, for security
# reasons ..
- if (!($rev1 =~ /^[\d\.]+$/) || !($rev2 =~ /^[\d\.]+$/)) {
+ if ($rev1 =~ /[^\w.]/ || $rev2 =~ /[^\w.]/) {
&fatal("404 Not Found",
"Malformed query \"$ENV{QUERY_STRING}\"");
}
@@ -1413,7 +1422,7 @@ sub doDiff($$$$$$) {
# apply special options
if ($showfunc) {
- push @difftype, '-p';
+ push @difftype, '-p' if $f =~ /^[cHhu]$/;
my($re1, $re2);
@@ -2125,7 +2134,7 @@ EOF
print "\n";
$diffrev = $revdisplayorder[0];
$diffrev = $input{"r2"} if (defined($input{"r2"}));
- print "\n";
+ print "\n";
print "
Type of Diff should be a ";
printDiffSelect(0);
print "\n";
@@ -2373,7 +2382,7 @@ sub navigateHeader($$$$$) {
$swhere = urlencode($filename) if ($swhere eq "");
print "<\!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">";
print "\n