diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/codecs/flac.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/apps/codecs/flac.c b/apps/codecs/flac.c index c23611a50b..64d380d2a2 100644 --- a/apps/codecs/flac.c +++ b/apps/codecs/flac.c | |||
@@ -118,7 +118,13 @@ static bool flac_init(FLACContext* fc, int first_frame_offset) | |||
118 | 118 | ||
119 | fc->filesize = ci->filesize; | 119 | fc->filesize = ci->filesize; |
120 | fc->min_blocksize = (buf[0] << 8) | buf[1]; | 120 | fc->min_blocksize = (buf[0] << 8) | buf[1]; |
121 | fc->max_blocksize = (buf[2] << 8) | buf[3]; | 121 | int max_blocksize = (buf[2] << 8) | buf[3]; |
122 | if (max_blocksize > MAX_BLOCKSIZE) | ||
123 | { | ||
124 | LOGF("FLAC: Maximum blocksize is too large\n"); | ||
125 | return false; | ||
126 | } | ||
127 | fc->max_blocksize = max_blocksize; | ||
122 | fc->min_framesize = (buf[4] << 16) | (buf[5] << 8) | buf[6]; | 128 | fc->min_framesize = (buf[4] << 16) | (buf[5] << 8) | buf[6]; |
123 | fc->max_framesize = (buf[7] << 16) | (buf[8] << 8) | buf[9]; | 129 | fc->max_framesize = (buf[7] << 16) | (buf[8] << 8) | buf[9]; |
124 | fc->samplerate = (buf[10] << 12) | (buf[11] << 4) | 130 | fc->samplerate = (buf[10] << 12) | (buf[11] << 4) |