[Spice-devel] [PATCH v2] fixup! Change Drawable->pipes from Ring to GList
Jonathon Jongsma
jjongsma at redhat.com
Fri Sep 16 16:38:49 UTC 2016
Fix potential infinite loop
---
server/stream.c | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
diff --git a/server/stream.c b/server/stream.c
index 934b236..49b5910 100644
--- a/server/stream.c
+++ b/server/stream.c
@@ -331,11 +331,10 @@ void detach_stream(DisplayChannel *display, Stream *stream)
static void before_reattach_stream(DisplayChannel *display,
Stream *stream, Drawable *new_frame)
{
- RedDrawablePipeItem *dpi;
DisplayChannelClient *dcc;
int index;
StreamAgent *agent;
- GList *dpi_item;
+ GList *dpi_link, *dpi_next;
GList *link, *link_next;
spice_return_if_fail(stream->current);
@@ -350,10 +349,9 @@ static void before_reattach_stream(DisplayChannel *display,
}
index = display_channel_get_stream_id(display, stream);
- dpi_item = stream->current->pipes;
- while (dpi_item) {
- GList *dpi_next = dpi_item->next;
- dpi = dpi_item->data;
+ for (dpi_link = stream->current->pipes; dpi_link; dpi_link = dpi_next) {
+ RedDrawablePipeItem *dpi = dpi_link->data;
+ dpi_next = dpi_link->next;
dcc = dpi->dcc;
agent = dcc_get_stream_agent(dcc, index);
@@ -373,7 +371,6 @@ static void before_reattach_stream(DisplayChannel *display,
++agent->drops;
}
}
- dpi_item = dpi_next;
}
--
2.7.4
More information about the Spice-devel
mailing list