[Spice-devel] [spice-gtk] Check coroutine_init() return value

Marc-André Lureau mlureau at redhat.com
Tue Nov 19 02:53:48 PST 2013


ack series

----- Original Message -----
> On Mon, Nov 18, 2013 at 06:00:16PM +0100, Christophe Fergeau wrote:
> > coroutine_init() can fail, but spice-channel.c was not checking its return
> > value, which could lead to some crashes if coroutine_init() failed and we
> > then try to use coroutine_yieldto()
> > ---
> >  gtk/coroutine.h          | 2 +-
> >  gtk/coroutine_ucontext.c | 6 ++++++
> >  gtk/spice-channel.c      | 9 ++++++++-
> >  3 files changed, 15 insertions(+), 2 deletions(-)
> > 
> > diff --git a/gtk/coroutine.h b/gtk/coroutine.h
> > index 15b90b4..ef6f3db 100644
> > --- a/gtk/coroutine.h
> > +++ b/gtk/coroutine.h
> > @@ -56,7 +56,7 @@ struct coroutine
> >  };
> >  
> >  #define IN_MAIN_CONTEXT (coroutine_self() == NULL ||
> >  coroutine_is_main_context(coroutine_self()))
> > -int coroutine_init(struct coroutine *co);
> > +int coroutine_init(struct coroutine *co) G_GNUC_WARN_UNUSED_RESULT;
> >  
> >  int coroutine_release(struct coroutine *co);
> >  
> > diff --git a/gtk/coroutine_ucontext.c b/gtk/coroutine_ucontext.c
> > index f4ff22e..f391f28 100644
> > --- a/gtk/coroutine_ucontext.c
> > +++ b/gtk/coroutine_ucontext.c
> > @@ -65,6 +65,12 @@ static void coroutine_trampoline(struct continuation
> > *cc)
> >  
> >  int coroutine_init(struct coroutine *co)
> >  {
> > +    static int init_count = 1;
> > +    if (init_count % 10 == 0) {
> > +        g_warning("failing corouitne_init!!");
> > +        return -1;
> > +    }
> > +    init_count++;
> 
> This is just some debugging leftover, gone already.
> 
> Christophe
> 
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel
> 


More information about the Spice-devel mailing list