From 15e76a69bfa5cc5cd90e9b6913c1b9ea366ff5ee Mon Sep 17 00:00:00 2001 From: "Igor V. Kovalenko" Date: Wed, 8 Feb 2023 10:39:26 +0300 Subject: memblockq: Drop check for chunk index alignment, require aligned length There is no requirement for chunk index to be aligned, we only need chunk length to be multiple of sample frame size. Fixes: 6434853b0 ("memblockq: Do not allow non-frame indices in the memblock queue") Fixes: 22827a5e1 ("protocol-native: Fail if trying to push unaligned memblock into queue") Part-of: --- src/pulsecore/memblockq.c | 1 - src/pulsecore/protocol-native.c | 6 +++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/pulsecore/memblockq.c b/src/pulsecore/memblockq.c index b132dd318..69e2147c8 100644 --- a/src/pulsecore/memblockq.c +++ b/src/pulsecore/memblockq.c @@ -286,7 +286,6 @@ int pa_memblockq_push(pa_memblockq* bq, const pa_memchunk *uchunk) { pa_assert(uchunk->index + uchunk->length <= pa_memblock_get_length(uchunk->memblock)); pa_assert(uchunk->length % bq->base == 0); - pa_assert(uchunk->index % bq->base == 0); if (!can_push(bq, uchunk->length)) return -1; diff --git a/src/pulsecore/protocol-native.c b/src/pulsecore/protocol-native.c index 1342dee10..98b8795d9 100644 --- a/src/pulsecore/protocol-native.c +++ b/src/pulsecore/protocol-native.c @@ -5068,9 +5068,9 @@ static void pstream_memblock_callback(pa_pstream *p, uint32_t channel, int64_t o playback_stream *ps = PLAYBACK_STREAM(stream); size_t frame_size = pa_frame_size(&ps->sink_input->sample_spec); - if (chunk->index % frame_size != 0 || chunk->length % frame_size != 0) { - pa_log_warn("Client sent non-aligned memblock: index %d, length %d, frame size: %d", - (int) chunk->index, (int) chunk->length, (int) frame_size); + if (chunk->length % frame_size != 0) { + pa_log_warn("Client sent non-aligned memblock: length %d, frame size: %d", + (int) chunk->length, (int) frame_size); return; } -- cgit v1.2.1