From 2351ef6bbe644ba21c633b8d2fd90572d04139f5 Mon Sep 17 00:00:00 2001 From: Ben Balter Date: Thu, 28 Jul 2016 14:46:05 -0400 Subject: [PATCH 1/2] dont double sanitize theme folder paths --- lib/jekyll/theme.rb | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/lib/jekyll/theme.rb b/lib/jekyll/theme.rb index 4cd2d163..e402ec05 100644 --- a/lib/jekyll/theme.rb +++ b/lib/jekyll/theme.rb @@ -34,11 +34,8 @@ module Jekyll private def path_for(folder) - resolved_dir = realpath_for(folder) - return unless resolved_dir - - path = Jekyll.sanitized_path(root, resolved_dir) - path if File.directory?(path) + path = realpath_for(folder) + path if path && File.directory?(path) end def realpath_for(folder) From 8b69c6f0b5ad8c6d94c782c559028db4985a4704 Mon Sep 17 00:00:00 2001 From: Ben Balter Date: Thu, 28 Jul 2016 15:12:31 -0400 Subject: [PATCH 2/2] resolve theme root before sanitizing --- lib/jekyll/theme.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/jekyll/theme.rb b/lib/jekyll/theme.rb index e402ec05..0dd73f78 100644 --- a/lib/jekyll/theme.rb +++ b/lib/jekyll/theme.rb @@ -10,7 +10,11 @@ module Jekyll end def root - @root ||= gemspec.full_gem_path + # Must use File.realpath to resolve symlinks created by rbenv + # Otherwise, Jekyll.sanitized path with prepend the unresolved root + @root ||= File.realpath(gemspec.full_gem_path) + rescue Errno::ENOENT, Errno::EACCES, Errno::ELOOP + nil end def includes_path