From 0b241fb9fda240cc9bcbc530cd3fd5917a7ee995 Mon Sep 17 00:00:00 2001 From: Tom Bloor Date: Wed, 15 Jul 2015 01:34:48 +0100 Subject: [PATCH 1/2] Fix for hashes in filenames, better uri encoding --- lib/Rapi/Fs/Module/FileTree.pm | 2 +- lib/Rapi/Fs/Module/Role/Mounts.pm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/Rapi/Fs/Module/FileTree.pm b/lib/Rapi/Fs/Module/FileTree.pm index 420fbe7..71b534d 100644 --- a/lib/Rapi/Fs/Module/FileTree.pm +++ b/lib/Rapi/Fs/Module/FileTree.pm @@ -135,7 +135,7 @@ sub _apply_node_view_url { my ($self, $Node, $mount, $for_ext) = @_; my $enc_path = $Node->path && $Node->path ne '/' - ? $self->b64_encode(join('/',$mount,$Node->path)) + ? join('/',$self->b64_encode($mount),$self->b64_encode($Node->path)) : $self->b64_encode($mount); $Node->view_url( $for_ext ? $self->local_url($enc_path) : $self->suburl($enc_path) ); diff --git a/lib/Rapi/Fs/Module/Role/Mounts.pm b/lib/Rapi/Fs/Module/Role/Mounts.pm index 2323e25..68422af 100644 --- a/lib/Rapi/Fs/Module/Role/Mounts.pm +++ b/lib/Rapi/Fs/Module/Role/Mounts.pm @@ -124,7 +124,7 @@ after 'BUILD' => sub { use URI::Escape; -sub b64_encode { $_[1] } +sub b64_encode { uri_escape($_[1]) } sub b64_decode { uri_unescape($_[1]) } From 99fbfd3a2557fb71f8bc63a7f5de973cda1330c6 Mon Sep 17 00:00:00 2001 From: Tom Bloor Date: Wed, 15 Jul 2015 11:46:03 +0100 Subject: [PATCH 2/2] Only percent encode specific characters --- lib/Rapi/Fs/Module/Role/Mounts.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Rapi/Fs/Module/Role/Mounts.pm b/lib/Rapi/Fs/Module/Role/Mounts.pm index 68422af..8213a6e 100644 --- a/lib/Rapi/Fs/Module/Role/Mounts.pm +++ b/lib/Rapi/Fs/Module/Role/Mounts.pm @@ -124,7 +124,7 @@ after 'BUILD' => sub { use URI::Escape; -sub b64_encode { uri_escape($_[1]) } +sub b64_encode { uri_escape($_[1], '#&?%') } sub b64_decode { uri_unescape($_[1]) }