Skip to content

Commit b5d5998

Browse files
committed
Land rapid7#2098 - Catch Rex::ArgumentParseError
2 parents fca732d + 62413df commit b5d5998

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

msfcli

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -141,8 +141,12 @@ exploit.init_ui(
141141
mode = ARGV.pop || 'h'
142142

143143
# Import options
144-
exploit.datastore.import_options_from_s(ARGV.join('_|_'), '_|_')
145-
144+
begin
145+
exploit.datastore.import_options_from_s(ARGV.join('_|_'), '_|_')
146+
rescue Rex::ArgumentParseError => e
147+
puts "[!] Error: #{e.message}\n\n"
148+
exit
149+
end
146150

147151
# Initialize associated modules
148152
payload = nil
@@ -152,21 +156,21 @@ nop = nil
152156
if (exploit.datastore['PAYLOAD'])
153157
payload = $framework.payloads.create(exploit.datastore['PAYLOAD'])
154158
if (payload != nil)
155-
payload.datastore.import_options_from_s(ARGV.join('_|_'), '_|_')
159+
payload.datastore.import_options_from_s(ARGV.join('_|_'), '_|_')
156160
end
157161
end
158162

159163
if (exploit.datastore['ENCODER'])
160164
encoder = $framework.encoders.create(exploit.datastore['ENCODER'])
161165
if (encoder != nil)
162-
encoder.datastore.import_options_from_s(ARGV.join('_|_'), '_|_')
166+
encoder.datastore.import_options_from_s(ARGV.join('_|_'), '_|_')
163167
end
164168
end
165169

166170
if (exploit.datastore['NOP'])
167171
nop = $framework.nops.create(exploit.datastore['NOP'])
168172
if (nop != nil)
169-
nop.datastore.import_options_from_s(ARGV.join('_|_'), '_|_')
173+
nop.datastore.import_options_from_s(ARGV.join('_|_'), '_|_')
170174
end
171175
end
172176

@@ -178,7 +182,6 @@ case mode.downcase
178182
$stdout.puts("\n" + Msf::Serializer::ReadableText.dump_module(payload, Indent)) if payload
179183
$stdout.puts("\n" + Msf::Serializer::ReadableText.dump_module(encoder, Indent)) if encoder
180184
$stdout.puts("\n" + Msf::Serializer::ReadableText.dump_module(nop, Indent)) if nop
181-
182185
when "o"
183186
$stdout.puts("\n" + Msf::Serializer::ReadableText.dump_options(exploit, Indent))
184187
$stdout.puts("\n" + Msf::Serializer::ReadableText.dump_options(payload, Indent)) if payload

0 commit comments

Comments
 (0)