* need to check that this is sufficient and allocate more memory if
* not.
*/
- if (GET_PKT_LEN(rp) - p->payload_len > seg->pcap_hdr_storage->alloclen) {
- uint8_t *tmp_pkt_hdr =
- SCRealloc(seg->pcap_hdr_storage->pkt_hdr, GET_PKT_LEN(rp) - p->payload_len);
+ if (seg->pcap_hdr_storage->pktlen > seg->pcap_hdr_storage->alloclen) {
+ uint8_t *tmp_pkt_hdr = StreamTcpReassembleRealloc(seg->pcap_hdr_storage->pkt_hdr,
+ seg->pcap_hdr_storage->alloclen, seg->pcap_hdr_storage->pktlen);
if (tmp_pkt_hdr == NULL) {
SCLogDebug("Failed to realloc");
seg->pcap_hdr_storage->ts.tv_sec = 0;
/*
void *(*Realloc)(void *ptr, size_t orig_size, size_t size);
*/
-static void *ReassembleRealloc(void *optr, size_t orig_size, size_t size)
+void *StreamTcpReassembleRealloc(void *optr, size_t orig_size, size_t size)
{
if (size > orig_size) {
if (StreamTcpReassembleCheckMemcap(size - orig_size) == 0)
stream_config.sbcnf.buf_size = 2048;
stream_config.sbcnf.Malloc = ReassembleMalloc;
stream_config.sbcnf.Calloc = ReassembleCalloc;
- stream_config.sbcnf.Realloc = ReassembleRealloc;
+ stream_config.sbcnf.Realloc = StreamTcpReassembleRealloc;
stream_config.sbcnf.Free = ReassembleFree;
return 0;
int StreamTcpReassembleHandleSegment(ThreadVars *, TcpReassemblyThreadCtx *, TcpSession *, TcpStream *, Packet *, PacketQueueNoLock *);
int StreamTcpReassembleInit(bool);
void StreamTcpReassembleFree(bool);
+void *StreamTcpReassembleRealloc(void *optr, size_t orig_size, size_t size);
void StreamTcpReassembleRegisterTests(void);
TcpReassemblyThreadCtx *StreamTcpReassembleInitThreadCtx(ThreadVars *tv);
void StreamTcpReassembleFreeThreadCtx(TcpReassemblyThreadCtx *);