[Spice-devel] [PATCH spice-gtk v3 1/6] display-gst: check codec type before creating decoder

Christophe Fergeau cfergeau at redhat.com
Tue Jun 6 14:40:33 UTC 2017


On Tue, May 16, 2017 at 04:48:13PM +0200, Victor Toso wrote:
> From: Victor Toso <me at victortoso.com>
> 
> Inserting this check in channel-display-gst.c as the GStreamer decoder
> is the only one handling all the different video formats supported by
> spice-protocol.
> 
> If a unsupported/bad codec type value was sent, spice-gtk will fail to
> create the decoder and any messages related to this stream-id will be
> ignored.
> 
> Signed-off-by: Victor Toso <victortoso at redhat.com>
> Signed-off-by: Victor Toso <me at victortoso.com>
> ---
>  src/channel-display-gst.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/src/channel-display-gst.c b/src/channel-display-gst.c
> index 9b79403..d3e83e3 100644
> --- a/src/channel-display-gst.c
> +++ b/src/channel-display-gst.c
> @@ -512,6 +512,8 @@ VideoDecoder* create_gstreamer_decoder(int codec_type, display_stream *stream)
>  {
>      SpiceGstDecoder *decoder = NULL;
>  
> +    g_return_val_if_fail(VALID_VIDEO_CODEC_TYPE(codec_type), NULL);
> +

g_return_val_if_fail() is usually used to detect/report programming
erros, ie situations that are not expected to happen if the program
works as expected by the developer. In this case, it seems the user
could trigger this warning by sending an invalid codec type in a
SpiceMsgDisplayStreamCreate message? If that's correct, I would use
a regular test:

if (!VALID_VIDEO_CODEC_TYPE(codec_type)) {
    g_warning(...);
    return NULL;
}

Christophe
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20170606/ba83c744/attachment.sig>


More information about the Spice-devel mailing list