Acked-by: Christophe Fergeau <cfergeau@xxxxxxxxxx> On Tue, May 10, 2016 at 03:14:29PM +0100, Frediano Ziglio wrote: > Removing an interface cause SpiceBaseInstance->st to be set to NULL. > This pointer was then deferenced in agent code. > As SpiceBaseInstance should not be used after this call make sure > we don't keep pointers to it. > > Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> > --- > server/reds.c | 1 + > server/spice-server.h | 5 +++++ > 2 files changed, 6 insertions(+) > > Changes from v3: > - improved comment. > > diff --git a/server/reds.c b/server/reds.c > index f54534a..34de3b0 100644 > --- a/server/reds.c > +++ b/server/reds.c > @@ -3264,6 +3264,7 @@ static void spice_server_char_device_remove_interface(RedsState *reds, SpiceBase > if (strcmp(char_device->subtype, SUBTYPE_VDAGENT) == 0) { > if (reds->vdagent) { > reds_agent_remove(reds); > + red_char_device_reset_dev_instance(RED_CHAR_DEVICE(reds->agent_dev), NULL); > } > } > #ifdef USE_SMARTCARD > diff --git a/server/spice-server.h b/server/spice-server.h > index d309f18..87c5c59 100644 > --- a/server/spice-server.h > +++ b/server/spice-server.h > @@ -67,6 +67,11 @@ int spice_server_add_ssl_client(SpiceServer *s, int socket, int skip_auth); > > int spice_server_add_interface(SpiceServer *s, > SpiceBaseInstance *sin); > +/** > + * Remove an interface from SpiceServer. > + * SpiceServer won't be using the interface anymore, so it can > + * be freed or reused. > + */ > int spice_server_remove_interface(SpiceBaseInstance *sin); > > // Needed for backward API compatibility > -- > 2.5.5 > > _______________________________________________ > Spice-devel mailing list > Spice-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/spice-devel
Attachment:
signature.asc
Description: PGP signature
_______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel