Skip to content

Commit 169d84d

Browse files
VandoulRbb666
authored andcommitted
修复单向列表移除节点时存在的安全风险.
Signed-off-by: vandoul <[email protected]>
1 parent b23d87b commit 169d84d

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

include/rtservice.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,7 @@ rt_inline rt_slist_t *rt_slist_pop(rt_slist_t *l)
234234
if (node != (rt_slist_t *)0)
235235
{
236236
((struct rt_slist_node *)l)->next = node->next;
237+
node->next = RT_NULL;
237238
}
238239

239240
return node;
@@ -246,7 +247,11 @@ rt_inline rt_slist_t *rt_slist_remove(rt_slist_t *l, rt_slist_t *n)
246247
while (node->next && node->next != n) node = node->next;
247248

248249
/* remove node */
249-
if (node->next != (rt_slist_t *)0) node->next = node->next->next;
250+
if (node->next != (rt_slist_t *)0)
251+
{
252+
node->next = node->next->next;
253+
n->next = RT_NULL;
254+
}
250255

251256
return l;
252257
}

0 commit comments

Comments
 (0)