diff options
| author | jacqueline <me@jacqueline.id.au> | 2023-04-06 16:19:02 +1000 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2023-04-19 10:29:40 +1000 |
| commit | 25c5896dc5c239e3a175c6c8fc5d7368946adeb6 (patch) | |
| tree | c5147094818afa223a2e155d83445f0a669317e4 /src/audio/include | |
| parent | 7a54ff0df9c18b662e5bdc11ac2e26ff052cfa4d (diff) | |
| download | tangara-fw-25c5896dc5c239e3a175c6c8fc5d7368946adeb6.tar.gz | |
add some bounds checking asserts
Diffstat (limited to 'src/audio/include')
| -rw-r--r-- | src/audio/include/stream_info.hpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/audio/include/stream_info.hpp b/src/audio/include/stream_info.hpp index 5a36384c..6256f2ee 100644 --- a/src/audio/include/stream_info.hpp +++ b/src/audio/include/stream_info.hpp @@ -67,6 +67,7 @@ class InputStream { explicit InputStream(RawStream* s) : raw_(s) {} void consume(std::size_t bytes) const { + assert(raw_->info->bytes_in_stream >= bytes); auto new_data = raw_->data.subspan(bytes); std::move(new_data.begin(), new_data.end(), raw_->data.begin()); raw_->info->bytes_in_stream = new_data.size_bytes(); @@ -88,7 +89,10 @@ class OutputStream { public: explicit OutputStream(RawStream* s) : raw_(s) {} - void add(std::size_t bytes) const { raw_->info->bytes_in_stream += bytes; } + void add(std::size_t bytes) const { + assert(raw_->info->bytes_in_stream + bytes <= raw_->data.size_bytes()); + raw_->info->bytes_in_stream += bytes; + } bool prepare(const StreamInfo::Format& new_format) { if (std::holds_alternative<std::monostate>(raw_->info->format)) { |
