dhcp: check length of option before accessing

Prevent Rust index out of bounds panic.

Redmine issue:
https://redmine.openinfosecfoundation.org/issues/2571
pull/3457/head
Jason Ish 7 years ago committed by Victor Julien
parent 7bc2469eb1
commit 1c6bc5754c

@ -190,18 +190,20 @@ impl DHCPLogger {
} }
fn log_opt_type(&self, js: &Json, option: &DHCPOptGeneric) { fn log_opt_type(&self, js: &Json, option: &DHCPOptGeneric) {
let dhcp_type = match option.data[0] { if option.data.len() > 0 {
DHCP_TYPE_DISCOVER => "discover", let dhcp_type = match option.data[0] {
DHCP_TYPE_OFFER => "offer", DHCP_TYPE_DISCOVER => "discover",
DHCP_TYPE_REQUEST => "request", DHCP_TYPE_OFFER => "offer",
DHCP_TYPE_DECLINE => "decline", DHCP_TYPE_REQUEST => "request",
DHCP_TYPE_ACK => "ack", DHCP_TYPE_DECLINE => "decline",
DHCP_TYPE_NAK => "nak", DHCP_TYPE_ACK => "ack",
DHCP_TYPE_RELEASE => "release", DHCP_TYPE_NAK => "nak",
DHCP_TYPE_INFORM => "inform", DHCP_TYPE_RELEASE => "release",
_ => "unknown" DHCP_TYPE_INFORM => "inform",
}; _ => "unknown"
js.set_string("dhcp_type", dhcp_type); };
js.set_string("dhcp_type", dhcp_type);
}
} }
fn log_opt_parameters(&self, js: &Json, option: &DHCPOptGeneric) { fn log_opt_parameters(&self, js: &Json, option: &DHCPOptGeneric) {

Loading…
Cancel
Save