diff --git a/src/wav.c b/src/wav.c index 6020f20..286a57b 100644 --- a/src/wav.c +++ b/src/wav.c @@ -1,5 +1,5 @@ /* -** Copyright (C) 1999-2016 Erik de Castro Lopo +** Copyright (C) 1999-2019 Erik de Castro Lopo ** Copyright (C) 2004-2005 David Viens ** ** This program is free software; you can redistribute it and/or modify @@ -1098,6 +1098,8 @@ wav_write_header (SF_PRIVATE *psf, int calc_length) if (psf->instrument->loop_count > ARRAY_LEN (psf->instrument->loops)) psf->instrument->loop_count = ARRAY_LEN (psf->instrument->loops) ; + /* Loop count is signed 16 bit number so we limit it range to something sensible. */ + psf->instrument->loop_count &= 0x7fff ; for (tmp = 0 ; tmp < psf->instrument->loop_count ; tmp++) { int type ;