diff --git a/src/app-layer-dcerpc-udp.c b/src/app-layer-dcerpc-udp.c index e42c96804e..58d714d040 100644 --- a/src/app-layer-dcerpc-udp.c +++ b/src/app-layer-dcerpc-udp.c @@ -716,6 +716,8 @@ static int DCERPCUDPParse(Flow *f, void *dcerpc_state, if (input == NULL && AppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF)) { SCReturnInt(1); + } else if (input == NULL || input_len == 0) { + SCReturnInt(-1); } DCERPCUDPState *sstate = (DCERPCUDPState *) dcerpc_state; diff --git a/src/app-layer-dcerpc.c b/src/app-layer-dcerpc.c index bbfb330067..44705ea970 100644 --- a/src/app-layer-dcerpc.c +++ b/src/app-layer-dcerpc.c @@ -1913,6 +1913,8 @@ static int DCERPCParse(Flow *f, void *dcerpc_state, if (input == NULL && AppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF)) { SCReturnInt(1); + } else if (input == NULL || input_len == 0) { + SCReturnInt(-1); } if (sstate->dcerpc.bytesprocessed != 0 && sstate->data_needed_for_dir != dir) { diff --git a/src/app-layer-dns-tcp.c b/src/app-layer-dns-tcp.c index 80a48507ee..f1cb597d2a 100644 --- a/src/app-layer-dns-tcp.c +++ b/src/app-layer-dns-tcp.c @@ -503,7 +503,7 @@ static int DNSTCPResponseParse(Flow *f, void *dstate, SCReturnInt(-1); /* probably a rst/fin sending an eof */ - if (input_len == 0) { + if (input == NULL || input_len == 0) { goto insufficient_data; } diff --git a/src/app-layer-ftp.c b/src/app-layer-ftp.c index 1ba1844615..b5d4a03d98 100644 --- a/src/app-layer-ftp.c +++ b/src/app-layer-ftp.c @@ -221,6 +221,8 @@ static int FTPParseRequest(Flow *f, void *ftp_state, if (input == NULL && AppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF)) { SCReturnInt(1); + } else if (input == NULL || input_len == 0) { + SCReturnInt(-1); } state->input = input; diff --git a/src/app-layer-modbus.c b/src/app-layer-modbus.c index 9e9ba03741..fa965135d3 100644 --- a/src/app-layer-modbus.c +++ b/src/app-layer-modbus.c @@ -1229,6 +1229,8 @@ static int ModbusParseRequest(Flow *f, if (input == NULL && AppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF)) { SCReturnInt(1); + } else if (input == NULL || input_len == 0) { + SCReturnInt(-1); } while (input_len > 0) { @@ -1290,6 +1292,8 @@ static int ModbusParseResponse(Flow *f, if (input == NULL && AppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF)) { SCReturnInt(1); + } else if (input == NULL || input_len == 0) { + SCReturnInt(-1); } while (input_len > 0) { diff --git a/src/app-layer-smb2.c b/src/app-layer-smb2.c index 3c591e913a..f412e1dfee 100644 --- a/src/app-layer-smb2.c +++ b/src/app-layer-smb2.c @@ -534,6 +534,8 @@ static int SMB2Parse(Flow *f, void *smb2_state, AppLayerParserState *pstate, if (input == NULL && AppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF)) { SCReturnInt(1); + } else if (input == NULL || input_len == 0) { + SCReturnInt(-1); } while (sstate->bytesprocessed < NBSS_HDR_LEN && input_len) { diff --git a/src/app-layer-smtp.c b/src/app-layer-smtp.c index 7f398a6e7d..1951613d1f 100644 --- a/src/app-layer-smtp.c +++ b/src/app-layer-smtp.c @@ -1067,6 +1067,8 @@ static int SMTPParse(int direction, Flow *f, SMTPState *state, if (input == NULL && AppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF)) { SCReturnInt(1); + } else if (input == NULL || input_len == 0) { + SCReturnInt(-1); } state->input = input; diff --git a/src/app-layer-ssh.c b/src/app-layer-ssh.c index fda60c1cf5..879c774665 100644 --- a/src/app-layer-ssh.c +++ b/src/app-layer-ssh.c @@ -424,6 +424,8 @@ static int SSHParseRequest(Flow *f, void *state, AppLayerParserState *pstate, if (input == NULL && AppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF)) { SCReturnInt(1); + } else if (input == NULL || input_len == 0) { + SCReturnInt(-1); } int r = SSHParseData(ssh_state, ssh_header, input, input_len); @@ -446,6 +448,8 @@ static int SSHParseResponse(Flow *f, void *state, AppLayerParserState *pstate, if (input == NULL && AppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF)) { SCReturnInt(1); + } else if (input == NULL || input_len == 0) { + SCReturnInt(-1); } int r = SSHParseData(ssh_state, ssh_header, input, input_len); diff --git a/src/app-layer-ssl.c b/src/app-layer-ssl.c index 0800c1db3d..5fb41ba15a 100644 --- a/src/app-layer-ssl.c +++ b/src/app-layer-ssl.c @@ -976,6 +976,8 @@ static int SSLDecode(Flow *f, uint8_t direction, void *alstate, AppLayerParserSt if (input == NULL && AppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF)) { SCReturnInt(1); + } else if (input == NULL || input_len == 0) { + SCReturnInt(-1); } if (direction == 0)