[Spice-devel] [PATCH 06/18] Add RedsState arg to reds_init_client_[ssl_]connection()

Frediano Ziglio fziglio at redhat.com
Wed Feb 10 17:35:43 UTC 2016


> 
> On Tue, 2016-02-09 at 05:43 -0500, Frediano Ziglio wrote:
> > > 
> > > From: Jonathon Jongsma <jjongsma at redhat.com>
> > > 
> > > ---
> > >  server/reds.c | 13 +++++++------
> > >  1 file changed, 7 insertions(+), 6 deletions(-)
> > > 
> > > diff --git a/server/reds.c b/server/reds.c
> > > index 6467c7e..7b8848a 100644
> > > --- a/server/reds.c
> > > +++ b/server/reds.c
> > > @@ -2265,7 +2265,7 @@ static void reds_handle_ssl_accept(int fd, int
> > > event,
> > > void *data)
> > >      }
> > >  }
> > >  
> > > -static RedLinkInfo *reds_init_client_connection(int socket)
> > > +static RedLinkInfo *reds_init_client_connection(RedsState *reds, int
> > > socket)
> > >  {
> > >      RedLinkInfo *link;
> > >      int delay_val = 1;
> > > @@ -2318,12 +2318,12 @@ error:
> > >  }
> > >  
> > >  
> > > -static RedLinkInfo *reds_init_client_ssl_connection(int socket)
> > > +static RedLinkInfo *reds_init_client_ssl_connection(RedsState *reds, int
> > > socket)
> > >  {
> > >      RedLinkInfo *link;
> > >      int ssl_status;
> > >  
> > > -    link = reds_init_client_connection(socket);
> > > +    link = reds_init_client_connection(reds, socket);
> > >      if (link == NULL)
> > >          goto error;
> > >  
> > > @@ -2354,6 +2354,7 @@ error:
> > >  
> > >  static void reds_accept_ssl_connection(int fd, int event, void *data)
> > >  {
> > > +    RedsState *reds = data;
> 
> 
> 
> It appears that I made an error and this hunk was incorrectly included in
> this
> patch. This apparently causes a smoketest failure. A later patch in the
> branch
> looks to have the fixes necessary to prevent the crash:
> 
> https://cgit.freedesktop.org/~fziglio/spice-server/commit/?h=refactory&id=7b9398
> 270f21c76e839e06ac279047d517820582
> 
> In particular, passing 'reds' as the last argument to watch_add(), instead of
> passing NULL.
> 

I think the fix is contained in Christophe changes.

Frediano

> 
> > >      RedLinkInfo *link;
> > >      int socket;
> > >  
> > > @@ -2362,7 +2363,7 @@ static void reds_accept_ssl_connection(int fd, int
> > > event, void *data)
> > >          return;
> > >      }
> > >  
> > > -    if (!(link = reds_init_client_ssl_connection(socket))) {
> > > +    if (!(link = reds_init_client_ssl_connection(reds, socket))) {
> > >          close(socket);
> > >          return;
> > >      }
> > > @@ -2388,7 +2389,7 @@ SPICE_GNUC_VISIBLE int
> > > spice_server_add_client(SpiceServer *s, int socket, int s
> > >      RedLinkInfo *link;
> > >  
> > >      spice_assert(reds == s);
> > > -    if (!(link = reds_init_client_connection(socket))) {
> > > +    if (!(link = reds_init_client_connection(s, socket))) {
> > >          spice_warning("accept failed");
> > >          return -1;
> > >      }
> > > @@ -2405,7 +2406,7 @@ SPICE_GNUC_VISIBLE int
> > > spice_server_add_ssl_client(SpiceServer *s, int socket, i
> > >      RedLinkInfo *link;
> > >  
> > >      spice_assert(reds == s);
> > > -    if (!(link = reds_init_client_ssl_connection(socket))) {
> > > +    if (!(link = reds_init_client_ssl_connection(s, socket))) {
> > >          return -1;
> > >      }
> > >  
> > 
> > Same considerations for naming, use reds instead of s.
> > 
> > Frediano


More information about the Spice-devel mailing list