Hello,

the current version of cvsweb has a stupid bug that prevents diffing a
file using tags only.

How to Reproduce:

Head to a file URL such as
https://cvsweb.bsd.lv/cvsweb/HISTORY

In the diff form, select "Diff between <some tag> and <some other tag>",
then hit Get Diffs.

Result: "Invalid character ":" in the value "<tag>" of the query parameter "r1"

Expected Result: A valid diff should be displayed.

KNOWN FIX:

In file "cvsweb" (the one installed under /var/www/cgi-bin/cvsweb)
replace line 322.

--- /tmp/original       Fri May 21 06:54:20 2021
+++ cvsweb      Thu May 20 12:07:21 2021
@@ -319,7 +319,7 @@
                    'Invalid character "%s" in query parameter "%s"',
                    $1, $key);
                if (defined $value) {
-                       $value =~ /([^a-zA-Z_01-9.\/-])/ and fatal(
+                       $value =~ /([^a-zA-Z_01-9.\/\:-])/ and fatal(
                            '404 Not Found', 'Invalid character "%s"' .
                            'in the value "%s" of the query parameter "%s"',
                            $1, $value, $key);


-- 
OpenPGP Key Fingerprint:
543F EB89 7FDE 8E33 AFF7 E794 E4AB 4807 58F7 6C76

Reply via email to