Skip to content

Commit 879c0d4

Browse files
committed
Land rapid7#8714, Default opts to an empty hash instead of nil
2 parents de23047 + 5c17f36 commit 879c0d4

File tree

2 files changed

+17
-25
lines changed

2 files changed

+17
-25
lines changed

lib/rex/post/meterpreter/extensions/stdapi/fs/dir.rb

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -195,19 +195,15 @@ def Dir.unlink(path)
195195
# Downloads the contents of a remote directory a
196196
# local directory, optionally in a recursive fashion.
197197
#
198-
def Dir.download(dst, src, opts, force = true, glob = nil, &stat)
199-
recursive = false
200-
continue = false
201-
tries = false
202-
tries_no = 0
198+
def Dir.download(dst, src, opts = {}, force = true, glob = nil, &stat)
203199
tries_cnt = 0
204-
if opts
205-
timestamp = opts["timestamp"]
206-
recursive = true if opts["recursive"]
207-
continue = true if opts["continue"]
208-
tries = true if opts["tries"]
209-
tries_no = opts["tries_no"]
210-
end
200+
201+
continue = opts["continue"]
202+
recursive = opts["recursive"]
203+
timestamp = opts["timestamp"]
204+
tries_no = opts["tries_no"] || 0
205+
tries = opts["tries"]
206+
211207
begin
212208
dir_files = self.entries(src, glob)
213209
rescue Rex::TimeoutError

lib/rex/post/meterpreter/extensions/stdapi/fs/file.rb

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -301,8 +301,8 @@ def File.is_glob?(name)
301301
# If a block is given, it will be called before each file is downloaded and
302302
# again when each download is complete.
303303
#
304-
def File.download(dest, src_files, opts = nil, &stat)
305-
timestamp = opts["timestamp"] if opts
304+
def File.download(dest, src_files, opts = {}, &stat)
305+
timestamp = opts["timestamp"]
306306
[*src_files].each { |src|
307307
if (::File.basename(dest) != File.basename(src))
308308
# The destination when downloading is a local file so use this
@@ -324,18 +324,15 @@ def File.download(dest, src_files, opts = nil, &stat)
324324
#
325325
# Download a single file.
326326
#
327-
def File.download_file(dest_file, src_file, opts = nil, &stat)
328-
continue=false
329-
tries=false
330-
tries_no=0
327+
def File.download_file(dest_file, src_file, opts = {}, &stat)
331328
stat ||= lambda { |a,b,c| }
332329

333-
if opts
334-
continue = true if opts["continue"]
335-
adaptive = true if opts['adaptive']
336-
tries = true if opts["tries"]
337-
tries_no = opts["tries_no"]
338-
end
330+
adaptive = opts["adaptive"]
331+
block_size = opts["block_size"] || 1024 * 1024
332+
continue = opts["continue"]
333+
tries_no = opts["tries_no"]
334+
tries = opts["tries"]
335+
339336
src_fd = client.fs.file.new(src_file, "rb")
340337

341338
# Check for changes
@@ -373,7 +370,6 @@ def File.download_file(dest_file, src_file, opts = nil, &stat)
373370
end
374371

375372
# Keep transferring until EOF is reached...
376-
block_size = (opts && opts['block_size']) || 1024 * 1024
377373
begin
378374
if tries
379375
# resume when timeouts encountered

0 commit comments

Comments
 (0)