Re: [PATCH spice-streaming-agent 1/3] Introduce InboundMessages for the StreamPort class

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

 



> 
> Wraps the deserialization of the received messages in an InboundMessages
> class. The class is created with the deserialized header and the raw
> data of the message. A template function get_payload() returns the
> struct of the concrete message. The function is specialized for each
> incoming message.
> 
> While this leaves the responsibility to call the get_payload() function
> with the message according to the type in the header to the caller, the
> solution preserves the efficiency of the original implementation without
> introducing too much complexity around the separation of the code.
> 
> Signed-off-by: Lukáš Hrázký <lhrazky@xxxxxxxxxx>

Rebasing I did this change:

@@ -31,6 +31,12 @@ StartStopMessage InboundMessage::get_payload<StartStopMessage>()

     msg.start_streaming = data[0]; // num_codecs

+    const int max_codecs = header.size - 1; /* see struct StreamMsgStartStop */
+    if (data[0] > max_codecs) {
+        throw std::runtime_error("num_codecs=" + std::to_string(data[0]) +
+                                 " > max_codecs=" + std::to_string(max_codecs));
+    }
+ 
     for (size_t i = 1; i <= data[0]; ++i) {
         msg.client_codecs.insert((SpiceVideoCodecType) data[i]);
     }


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]