Re: [PATCH] channel-webdav: avoid possible crash

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> 
> From: Victor Toso <me@xxxxxxxxxxxxxx>
> 
> In case PhodavServer or SoupServer are NULL, we should stop and
> return.
> 
> Signed-off-by: Victor Toso <victortoso@xxxxxxxxxx>
> ---
> 
> Rebased. Patch was related user report of crash in FlexVDI client [0].
> Being careful in this not-hot path should be okay IMHO.
> 
> [0] https://lists.freedesktop.org/archives/spice-devel/2019-May/049070.html
> 
>  src/channel-webdav.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/src/channel-webdav.c b/src/channel-webdav.c
> index fb25084..de2843e 100644
> --- a/src/channel-webdav.c
> +++ b/src/channel-webdav.c
> @@ -361,12 +361,17 @@ static void start_client(SpiceWebdavChannel *self)
>      GIOStream *peer = NULL;
>      SpiceSession *session;
>      SoupServer *server;
> +    PhodavServer* phodav_server;
>      GSocketAddress *addr;
>      GError *error = NULL;
>      bool started;
>  
>      session = spice_channel_get_session(SPICE_CHANNEL(self));
> -    server =
> phodav_server_get_soup_server(spice_session_get_webdav_server(session));
> +    phodav_server = spice_session_get_webdav_server(session);
> +    g_return_if_fail(phodav_server != NULL);
> +

As this will be always NULL we'll have a critical for each message sent by
the server.
g_return_if_fail documentation states:

"If expr evaluates to FALSE, the current function should be considered to have
undefined behaviour (a programmer error). The only correct solution to such
an error is to change the module that is calling the current function,
so that it avoids this incorrect call."

So this is a wrong usage of g_return_if_fail.

> +    server = phodav_server_get_soup_server(phodav_server);
> +    g_return_if_fail(server != NULL);
>  
>      CHANNEL_DEBUG(self, "starting client %" G_GINT64_FORMAT,
>      c->demux.client);
>  

Frediano
_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel




[Index of Archives]     [Linux Virtualization]     [Linux Virtualization]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]