aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--extras/mini-os/lib/xs.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/extras/mini-os/lib/xs.c b/extras/mini-os/lib/xs.c
index a2a122098c..c603d178bf 100644
--- a/extras/mini-os/lib/xs.c
+++ b/extras/mini-os/lib/xs.c
@@ -29,9 +29,12 @@ struct xs_handle *xs_daemon_open()
void xs_daemon_close(struct xs_handle *h)
{
int fd = _xs_fileno(h);
- struct xenbus_event *event;
- for (event = files[fd].xenbus.events; event; event = event->next)
+ struct xenbus_event *event, *next;
+ for (event = files[fd].xenbus.events; event; event = next)
+ {
+ next = event->next;
free(event);
+ }
files[fd].type = FTYPE_NONE;
}