Thread (6 messages) flat view 6 messages, 4 authors, 2016-06-15

Re: [PATCH/RESEND] gitweb: Fix snapshots requested via PATH_INFO

From: Jakub Narebski <hidden>
Date: 2016-06-15 22:46:36

On Wed, 15 April 2009, Junio C Hamano wrote:
Holger Weiß [off-list ref] writes:
quoted
Fix the detection of the requested snapshot format, which failed for
PATH_INFO URLs since the references to the hashes which describe the
supported snapshot formats weren't dereferenced appropriately.

Signed-off-by: Holger Weiß <redacted>
---
I guess this one got lost.  Without this patch, snapshots won't work if
Gitweb is configured to generate PATH_INFO URLs.  (Original Message-ID:
[ref]).
The patch looks obviously correct; "our %known_snapshort_formats" maps a
name to a hashref, but the current code makes a nonsense assignment,
essentialy doing ($fmt, %opt) = ($name, $hashref), but what would I
know...  I am not using gitweb actively.

These lines come from 1ec2fb5 (gitweb: retrieve snapshot format from
PATH_INFO, 2008-11-02) by Guiseppe.

Judging from the "git shortlog -n -s --grep=PATH_INFO gitweb" output, I
think I should have heard from either Guiseppe and Jakub by now if this
patch is desired.  Pinging them...
This change looks correct, and is very much desired.  Thanks for
catching this.

By the way, if there was check added for full path_info snapshot URL in
existing t/t9500-gitweb-standalone-no-errors.sh it would caught this
bug thanks to the
  "Odd number of elements in hash assignment ..."
warning that Perl throws in this case. 
quoted
 gitweb/gitweb.perl |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index 33ef190..3f99361 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -688,10 +688,10 @@ sub evaluate_path_info {
 		# extensions. Allowed extensions are both the defined suffix
 		# (which includes the initial dot already) and the snapshot
 		# format key itself, with a prepended dot
-		while (my ($fmt, %opt) = each %known_snapshot_formats) {
+		while (my ($fmt, $opt) = each %known_snapshot_formats) {
 			my $hash = $refname;
 			my $sfx;
-			$hash =~ s/(\Q$opt{'suffix'}\E|\Q.$fmt\E)$//;
+			$hash =~ s/(\Q$opt->{'suffix'}\E|\Q.$fmt\E)$//;
 			next unless $sfx = $1;
 			# a valid suffix was found, so set the snapshot format
 			# and reset the hash parameter
-- 
1.6.2.1
-- 
Jakub Narebski
Poland
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help