From 9a3f5ff977951781453fbe1e597dbd6eb5f7494a Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Sun, 11 Oct 2009 23:15:38 +0200 Subject: riff, aiff: fixed "limited range" gcc warning On 32 bit systems with large file support enabled (i.e. "sizeof(off_t) > sizeof(size_t)") gcc emits a warning because a size_t cast to off_t can never become negative. --- src/aiff.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/aiff.c') diff --git a/src/aiff.c b/src/aiff.c index f77e86d2b..d4bec628b 100644 --- a/src/aiff.c +++ b/src/aiff.c @@ -84,6 +84,11 @@ aiff_seek_id3(FILE *file) return 0; size = GUINT32_FROM_BE(chunk.size); + if (size > G_MAXINT32) + /* too dangerous, bail out: possible integer + underflow when casting to off_t */ + return 0; + if (size % 2 != 0) /* pad byte */ ++size; @@ -92,11 +97,6 @@ aiff_seek_id3(FILE *file) /* found it! */ return size; - if ((off_t)size < 0) - /* integer underflow after cast to signed - type */ - return 0; - ret = fseek(file, size, SEEK_CUR); if (ret != 0) return 0; -- cgit v1.2.3