Skip to content

Commit 03ce04c

Browse files
committed
Fix use-after-free in klist
1 parent 242ed0a commit 03ce04c

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

klist.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,11 @@
9999
return kl; \
100100
} \
101101
SCOPE void kl_destroy_##name(kl_##name##_t *kl) { \
102-
kl1_##name *p; \
103-
for (p = kl->head; p != kl->tail; p = p->next) \
102+
kl1_##name *p, *next_p; \
103+
for (p = kl->head; p != kl->tail; p = next_p){ \
104+
next_p = p->next; \
104105
kmp_free(name, kl->mp, p); \
106+
} \
105107
kmp_free(name, kl->mp, p); \
106108
kmp_destroy(name, kl->mp); \
107109
free(kl); \

0 commit comments

Comments
 (0)