revert: tcp_reassembly_pop() check ptr && tcp_segment_init() reduce memset

This commit is contained in:
luwenpeng
2024-08-14 10:53:22 +08:00
parent 6e1c25a445
commit a64837d19d

View File

@@ -33,6 +33,15 @@ struct tcp_reassembly
struct tcp_segment *tcp_segment_new(uint32_t seq, const void *data, uint32_t len) struct tcp_segment *tcp_segment_new(uint32_t seq, const void *data, uint32_t len)
{ {
struct tcp_segment_private *p = (struct tcp_segment_private *)malloc(sizeof(struct tcp_segment_private) + len); struct tcp_segment_private *p = (struct tcp_segment_private *)malloc(sizeof(struct tcp_segment_private) + len);
if (!p)
{
TCP_REASSEMBLY_LOG_ERROR("calloc failed");
return NULL;
}
p->ts = 0;
p->id = 0;
p->node.start = seq; p->node.start = seq;
p->node.last = (uint64_t)seq + (uint64_t)len - 1; p->node.last = (uint64_t)seq + (uint64_t)len - 1;
p->data = (char *)p + sizeof(struct tcp_segment_private); p->data = (char *)p + sizeof(struct tcp_segment_private);
@@ -65,8 +74,10 @@ struct tcp_reassembly *tcp_reassembly_new(uint64_t max_timeout, uint64_t max_seg
assembler->max_timeout = max_timeout; assembler->max_timeout = max_timeout;
assembler->max_seg_num = max_seg_num; assembler->max_seg_num = max_seg_num;
assembler->cur_seg_num = 0; assembler->cur_seg_num = 0;
assembler->root = RB_ROOT_CACHED; assembler->sum_seg_num = 0;
INIT_LIST_HEAD(&assembler->list); INIT_LIST_HEAD(&assembler->list);
assembler->root = RB_ROOT_CACHED;
assembler->recv_next = 0;
return assembler; return assembler;
} }
@@ -167,8 +178,6 @@ struct tcp_segment *tcp_reassembly_pop(struct tcp_reassembly *assembler)
node = interval_tree_iter_next(node, assembler->recv_next, assembler->recv_next); node = interval_tree_iter_next(node, assembler->recv_next, assembler->recv_next);
} }
if(oldest==NULL)return NULL;
list_del(&oldest->lru); list_del(&oldest->lru);
interval_tree_remove(&oldest->node, &assembler->root); interval_tree_remove(&oldest->node, &assembler->root);