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
+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 }