summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor V. Kovalenko <igor.v.kovalenko@gmail.com>2023-02-08 10:39:26 +0300
committerPulseAudio Marge Bot <pulseaudio-maintainers@lists.freedesktop.org>2023-02-26 19:42:03 +0000
commit15e76a69bfa5cc5cd90e9b6913c1b9ea366ff5ee (patch)
treeb202d60f191f6d413db0120304a6cf86e8de28fc
parent5ab2b9cb0e32190c3ea12b0f4cb7533d7340bbf1 (diff)
downloadpulseaudio-15e76a69bfa5cc5cd90e9b6913c1b9ea366ff5ee.tar.gz
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: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/779>
-rw-r--r--src/pulsecore/memblockq.c1
-rw-r--r--src/pulsecore/protocol-native.c6
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;
}