From 9f69f3dc96f72badd359d4ab7e65687871bc5876 Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Sun, 29 May 2011 13:53:32 +0200 Subject: [PATCH] ogg_get_file_info(): Fix off-by-one. The timing information encoded in the chunk table was not always sufficient to guarantee no buffer underruns since vorbis frames are frequently spread over two (or more) ogg pages. This should fix it. --- ogg_afh_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ogg_afh_common.c b/ogg_afh_common.c index cb59d363..564b0bec 100644 --- a/ogg_afh_common.c +++ b/ogg_afh_common.c @@ -170,7 +170,7 @@ int ogg_get_file_info(char *map, size_t numbytes, struct afh_info *afhi, for (j = 1; ogg_sync_pageseek(&oss, &op) > 0; /* nothing */) { int granule = ogg_page_granulepos(&op); - while (granule > j * frames_per_chunk) { + while (granule >= (j + 1) * frames_per_chunk) { j++; if (j >= ct_size) { ct_size *= 2; -- 2.39.5