len: u32, rdir: *mut u8) -> i32
{
SCLogDebug!("Probing packet for DCERPC");
- if len == 0 {
+ if len == 0 || input.is_null() {
return core::ALPROTO_UNKNOWN;
}
let slice: &[u8] = unsafe {
len: u32, rdir: *mut u8) -> i32
{
SCLogDebug!("Probing the packet for DCERPC/UDP");
- if len == 0 {
+ if len == 0 || input.is_null() {
return core::ALPROTO_UNKNOWN;
}
let slice: &[u8] = unsafe {
input_len: u32,
_rdir: *mut u8) -> AppProto
{
- if input_len < DHCP_MIN_FRAME_LEN {
+ if input_len < DHCP_MIN_FRAME_LEN || input.is_null() {
return ALPROTO_UNKNOWN;
}
len: u32,
rdir: *mut u8,
) -> AppProto {
- if len == 0 || len < std::mem::size_of::<DNSHeader>() as u32 {
+ if input.is_null() || len < std::mem::size_of::<DNSHeader>() as u32 {
return core::ALPROTO_UNKNOWN;
}
let slice: &[u8] = unsafe {
len: u32,
rdir: *mut u8
) -> AppProto {
- if len == 0 || len < std::mem::size_of::<DNSHeader>() as u32 + 2 {
+ if input.is_null() || len < std::mem::size_of::<DNSHeader>() as u32 + 2 {
return core::ALPROTO_UNKNOWN;
}
let slice: &[u8] = unsafe {
input:*const u8, input_len: u32,
_rdir: *mut u8) -> AppProto
{
+ if input.is_null() {
+ return ALPROTO_UNKNOWN;
+ }
let slice = build_slice!(input,input_len as usize);
let alproto = unsafe{ ALPROTO_KRB5 };
if slice.len() <= 10 { return unsafe{ALPROTO_FAILED}; }
input:*const u8, input_len: u32,
rdir: *mut u8) -> AppProto
{
+ if input.is_null() {
+ return ALPROTO_UNKNOWN;
+ }
let slice = build_slice!(input,input_len as usize);
if slice.len() <= 14 { return unsafe{ALPROTO_FAILED}; }
match be_u32(slice) as IResult<&[u8],u32> {
input_len: u32,
_rdir: *mut u8,
) -> AppProto {
+ if input.is_null() {
+ return ALPROTO_UNKNOWN;
+ }
let buf = build_slice!(input, input_len as usize);
match parse_fixed_header(buf) {
Ok((_, hdr)) => {
direction: u8, input: *const u8,
len: u32, rdir: *mut u8) -> i8
{
+ if input.is_null() {
+ return 0;
+ }
let slice: &[u8] = build_slice!(input, len as usize);
SCLogDebug!("rs_nfs_probe_ms: probing direction {:02x}", direction);
let mut adirection : u8 = 0;
input: *const u8, len: u32)
-> i8
{
+ if input.is_null() {
+ return 0;
+ }
let slice: &[u8] = build_slice!(input, len as usize);
SCLogDebug!("rs_nfs_probe: running probe");
return nfs_probe(slice, direction);
pub extern "C" fn rs_nfs_probe_udp_ts(input: *const u8, len: u32)
-> i8
{
+ if input.is_null() {
+ return 0;
+ }
let slice: &[u8] = build_slice!(input, len as usize);
return nfs_probe_udp(slice, STREAM_TOSERVER);
}
pub extern "C" fn rs_nfs_probe_udp_tc(input: *const u8, len: u32)
-> i8
{
+ if input.is_null() {
+ return 0;
+ }
let slice: &[u8] = build_slice!(input, len as usize);
return nfs_probe_udp(slice, STREAM_TOCLIENT);
}
input:*const u8, input_len: u32,
_rdir: *mut u8) -> AppProto
{
+ if input.is_null() {
+ return ALPROTO_UNKNOWN;
+ }
let slice: &[u8] = unsafe { std::slice::from_raw_parts(input as *mut u8, input_len as usize) };
let alproto = unsafe{ ALPROTO_NTP };
match parse_ntp(slice) {
pub extern "C" fn rs_smb_probe_begins_tcp(direction: u8, input: *const u8, len: u32, rdir: *mut u8)
-> i8
{
- if len < MIN_REC_SIZE as u32 {
+ if len < MIN_REC_SIZE as u32 || input.is_null() {
return 0;
}
let slice = build_slice!(input, len as usize);
pub extern "C" fn rs_smb_probe_tcp(direction: u8, input: *const u8, len: u32, rdir: *mut u8)
-> i8
{
- if len < MIN_REC_SIZE as u32 {
+ if len < MIN_REC_SIZE as u32 || input.is_null() {
return 0;
}
let slice = build_slice!(input, len as usize);
input:*const u8,
input_len: u32,
_rdir: *mut u8) -> AppProto {
+ if input.is_null() {
+ return ALPROTO_UNKNOWN;
+ }
let slice = build_slice!(input,input_len as usize);
let alproto = unsafe{ ALPROTO_SNMP };
if slice.len() < 4 { return unsafe{ALPROTO_FAILED}; }