[Spice-devel] [PATCH v2] fixup! Change Drawable->pipes from Ring to GList

Frediano Ziglio fziglio at redhat.com
Fri Sep 16 16:57:24 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;
>      }
>  
>  

Acked-by: Frediano Ziglio <fziglio at redhat.com>

After all these fixup and changes I got this
https://cgit.freedesktop.org/~fziglio/spice-server/log/?h=jj2
(just if you want to check)

I think we should be in a good state with the acks too.

Frediano


More information about the Spice-devel mailing list