FTPStringFree(str);
}
- SCFree(tx);
+ FTPFree(tx, sizeof(*tx));
}
static int FTPGetLineForDirection(FtpState *state, FtpLineState *line_state)
if (cmd == NULL)
return;
if (cmd->file_name) {
- FTPFree(cmd->file_name, cmd->file_len);
+ FTPFree(cmd->file_name, cmd->file_len + 1);
}
FTPFree(cmd, sizeof(struct FtpTransferCmd));
}
*dest = where;
}
/* either 0 or actual */
- return length;
+ return length ? length + 1 : 0;
}
DetectEngineStateFree(fstate->de_state);
}
if (fstate->file_name != NULL) {
- FTPFree(fstate->file_name, fstate->file_len);
+ FTPFree(fstate->file_name, fstate->file_len + 1);
}
FileContainerFree(fstate->files);
- SCFree(s);
+ FTPFree(s, sizeof(FtpDataState));
#ifdef DEBUG
SCMutexLock(&ftpdata_state_mem_lock);
ftpdata_state_memcnt--;
TAILQ_FOREACH(response, &tx->response_list, next) {
/* handle multiple lines within the response, \r\n delimited */
uint8_t *where = response->str;
- uint16_t length = response->len;
+ uint16_t length = response->len ? response->len -1 : 0;
uint16_t pos;
while ((pos = JsonGetNextLineFromBuffer((const char *)where, length)) != UINT16_MAX) {
uint16_t offset = 0;