Infinite recursion on error page fix for Anemone
This commit is contained in:
@@ -254,10 +254,20 @@ module Anemone
|
||||
!@pages.has_page?(link) &&
|
||||
!skip_link?(link) &&
|
||||
!skip_query_string?(link) &&
|
||||
# Metasploit bug fix to ensure we don't continually traverse 404 pages
|
||||
referred_from_valid_page?(from_page) &&
|
||||
allowed(link) &&
|
||||
!too_deep?(from_page)
|
||||
end
|
||||
|
||||
def referred_from_valid_page?(page)
|
||||
return true unless page && page.referer
|
||||
|
||||
# XXX This might need to handle differences between http and https schemes like '@pages.has_page?' implements
|
||||
referer_http_status = @pages[page.referer.to_s].code
|
||||
referer_http_status >= 100 && referer_http_status < 400
|
||||
end
|
||||
|
||||
#
|
||||
# Returns +true+ if we are obeying robots.txt and the link
|
||||
# is granted access in it. Always returns +true+ when we are
|
||||
@@ -305,3 +315,4 @@ module Anemone
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user