Skip to content

Commit 93125a9

Browse files
committed
Land rapid7#5501, check method response_timeout before using
2 parents d4ddc53 + bd36908 commit 93125a9

File tree

1 file changed

+20
-8
lines changed
  • lib/msf/ui/console/command_dispatcher

1 file changed

+20
-8
lines changed

lib/msf/ui/console/command_dispatcher/core.rb

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1778,8 +1778,8 @@ def cmd_sessions(*args)
17781778
end
17791779
ensure
17801780
# Restore timeout for each session
1781-
if session.respond_to?(:response_timeout)
1782-
session.response_timeout = last_known_timeout if last_known_timeout
1781+
if session.respond_to?(:response_timeout) && last_known_timeout
1782+
session.response_timeout = last_known_timeout
17831783
end
17841784
end
17851785
# If the session isn't a meterpreter or shell type, it
@@ -1801,7 +1801,9 @@ def cmd_sessions(*args)
18011801
begin
18021802
session.kill
18031803
ensure
1804-
session.response_timeout = last_known_timeout if last_known_timeout
1804+
if session.respond_to?(:response_timeout) && last_known_timeout
1805+
session.response_timeout = last_known_timeout
1806+
end
18051807
end
18061808
else
18071809
print_error("Invalid session identifier: #{sess_id}")
@@ -1819,7 +1821,9 @@ def cmd_sessions(*args)
18191821
begin
18201822
session.kill
18211823
ensure
1822-
session.response_timeout = last_known_timeout if last_known_timeout
1824+
if session.respond_to?(:response_timeout) && last_known_timeout
1825+
session.response_timeout = last_known_timeout
1826+
end
18231827
end
18241828
end
18251829
end
@@ -1837,7 +1841,9 @@ def cmd_sessions(*args)
18371841
begin
18381842
session.detach
18391843
ensure
1840-
session.response_timeout = last_known_timeout if last_known_timeout
1844+
if session.respond_to?(:response_timeout) && last_known_timeout
1845+
session.response_timeout = last_known_timeout
1846+
end
18411847
end
18421848
end
18431849
end
@@ -1855,7 +1861,9 @@ def cmd_sessions(*args)
18551861
self.active_session = nil
18561862
driver.input.reset_tab_completion if driver.input.supports_readline
18571863
ensure
1858-
session.response_timeout = last_known_timeout if last_known_timeout
1864+
if session.respond_to?(:response_timeout) && last_known_timeout
1865+
session.response_timeout = last_known_timeout
1866+
end
18591867
end
18601868
end
18611869
when 'scriptall'
@@ -1893,7 +1901,9 @@ def cmd_sessions(*args)
18931901
end
18941902
end
18951903
ensure
1896-
session.response_timeout = last_known_timeout if last_known_timeout
1904+
if session.respond_to?(:response_timeout) && last_known_timeout
1905+
session.response_timeout = last_known_timeout
1906+
end
18971907
end
18981908
else
18991909
print_error("Invalid session identifier: #{sess_id}")
@@ -1919,7 +1929,9 @@ def cmd_sessions(*args)
19191929
next
19201930
end
19211931
ensure
1922-
session.response_timeout = last_known_timeout if last_known_timeout
1932+
if session.respond_to?(:response_timeout) && last_known_timeout
1933+
session.response_timeout = last_known_timeout
1934+
end
19231935
end
19241936
end
19251937

0 commit comments

Comments
 (0)