[PATCH 2/2] memblockq: Limit rewinding so that it never results in a negative read index.
Tanu Kaskinen
tanuk at iki.fi
Thu Jun 9 06:42:48 PDT 2011
For completeness, maybe it would make sense to also limit
seeking so that the write index never gets negative...
---
src/pulsecore/memblockq.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/src/pulsecore/memblockq.c b/src/pulsecore/memblockq.c
index c76ca84..b0cbc4d 100644
--- a/src/pulsecore/memblockq.c
+++ b/src/pulsecore/memblockq.c
@@ -646,7 +646,12 @@ void pa_memblockq_rewind(pa_memblockq *bq, size_t length) {
/* This is kind of the inverse of pa_memblockq_drop() */
- bq->read_index -= (int64_t) length;
+ if (bq->read_index >= (int64_t) length)
+ bq->read_index -= (int64_t) length;
+ else {
+ pa_log_debug("Limiting rewinding to %li bytes to avoid negative read index.", (long) bq->read_index);
+ bq->read_index = 0;
+ }
read_index_changed(bq, old);
}
--
1.7.5.3
--=-c1lh/DcIg7k+Y9O6OMo/--
More information about the pulseaudio-discuss
mailing list