From 863a6ade9ee42ca6623980b122aed9c8378066df Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Wed, 5 Dec 2018 16:04:29 +0100 Subject: Prevent endless read of silent files This fixes issues with analysis and archiving that rely on a readable to return 0. Note however that createSilent() uses max_samplecnt (INT64_MAX) by default. This relies on a region setting the length of its missing source. --- libs/ardour/ardour/silentfilesource.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'libs/ardour/ardour/silentfilesource.h') diff --git a/libs/ardour/ardour/silentfilesource.h b/libs/ardour/ardour/silentfilesource.h index a0bd51cc38..79dc8b0a50 100644 --- a/libs/ardour/ardour/silentfilesource.h +++ b/libs/ardour/ardour/silentfilesource.h @@ -51,7 +51,8 @@ protected: _length = len; } - samplecnt_t read_unlocked (Sample *dst, samplepos_t /*start*/, samplecnt_t cnt) const { + samplecnt_t read_unlocked (Sample *dst, samplepos_t start, samplecnt_t cnt) const { + cnt = std::min (cnt, _length - start); memset (dst, 0, sizeof (Sample) * cnt); return cnt; } -- cgit v1.2.3