commit b075784
Michael Forney
·
2014-01-15 12:33:25 +0000 UTC
parent e46f32a
buffer: Use safe list traversal when destroying exporters
1 files changed,
+5,
-2
M
buffer.c
M
buffer.c
+5,
-2
1@@ -93,13 +93,16 @@ bool wld_export(struct wld_buffer * buffer,
2 EXPORT
3 void wld_destroy_buffer(struct wld_buffer * buffer)
4 {
5- struct wld_exporter * exporter;
6+ struct wld_exporter * exporter, * next;
7
8 if (buffer->map.count > 0)
9 wld_unmap(buffer);
10
11- for (exporter = buffer->exporters; exporter; exporter = exporter->next)
12+ for (exporter = buffer->exporters, next = exporter ? exporter->next : NULL;
13+ exporter; exporter = next, next = exporter ? exporter->next : NULL)
14+ {
15 exporter->impl->destroy(exporter);
16+ }
17
18 buffer->impl->destroy(buffer);
19 }