mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/spice
synced 2025-12-26 14:41:25 +00:00
gstreamer: Prevent integer overflow in delay computation
The partial expression "MSEC_PER_SEC * size * 8" can overflow if size is 536870 or more. This as the operation is done using 32 bit unsigned integers. Being the size potentially double of a compressed frame size the limit can be easily reached. As get_average_frame_size already return a 64 bit use 64 bit even for the size to avoid the integer overflow. Signed-off-by: Frediano Ziglio <fziglio@redhat.com> Acked-by: Francois Gouget <fgouget@codeweavers.com>
This commit is contained in:
parent
6940f7ff53
commit
554b20bbdb
@ -511,7 +511,7 @@ static uint32_t get_min_playback_delay(SpiceGstEncoder *encoder)
|
||||
* an I frame) and an average frame. This also takes into account the
|
||||
* frames dropped by the encoder bit rate control.
|
||||
*/
|
||||
uint32_t size = get_maximum_frame_size(encoder) + get_average_frame_size(encoder);
|
||||
uint64_t size = get_maximum_frame_size(encoder) + get_average_frame_size(encoder);
|
||||
uint32_t send_time = MSEC_PER_SEC * size * 8 / encoder->bit_rate;
|
||||
|
||||
/* Also factor in the network latency with a margin for jitter. */
|
||||
|
||||
Loading…
Reference in New Issue
Block a user