From 872049b1da43d81a001f25d62c9a01a7bd6a35c4 Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Tue, 1 Jul 2025 09:41:41 -0400 Subject: [PATCH] MT#55283 fix possible off-by-one Change-Id: Iadf2e9be28bb3a33043e3cd811daacd17579be3f --- recording-daemon/stream.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/recording-daemon/stream.c b/recording-daemon/stream.c index 710696bce..1bad7b59f 100644 --- a/recording-daemon/stream.c +++ b/recording-daemon/stream.c @@ -138,14 +138,19 @@ void stream_open(metafile_t *mf, unsigned long id, char *name) { epoll_add(stream->fd, EPOLLIN, &stream->handler); } -void stream_details(metafile_t *mf, unsigned long id, unsigned int tag, unsigned int media_sdp_id, unsigned int channel_slot) { +void stream_details(metafile_t *mf, unsigned long id, unsigned int tag, unsigned int media_sdp_id, + unsigned int channel_slot) +{ stream_t *stream = stream_get(mf, id); stream->tag = tag; stream->media_sdp_id = media_sdp_id; - if(channel_slot > mix_num_inputs) { - ilog(LOG_ERR, "Channel slot %u is greater than the maximum number of inputs %u, setting to %u", channel_slot, mix_num_inputs, mix_num_inputs); + if (channel_slot >= mix_num_inputs) { + stream->channel_slot = channel_slot % mix_num_inputs; + ilog(LOG_ERR, "Channel slot %u is greater than the maximum number of inputs %u, setting to %u", + channel_slot, mix_num_inputs, stream->channel_slot); } - stream->channel_slot = channel_slot > mix_num_inputs ? mix_num_inputs : channel_slot; + else + stream->channel_slot = channel_slot; } void stream_forwarding_on(metafile_t *mf, unsigned long id, unsigned int on) {