summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik de Castro Lopo <erikd@mega-nerd.com>2015-02-11 21:07:18 +1100
committerErik de Castro Lopo <erikd@mega-nerd.com>2015-02-11 21:07:18 +1100
commit7ffa51c5d91af836f797e0bb4d069f1c72ed9f15 (patch)
tree570b0ec1bac6fbcda1f1746e7eb527f35240b115
parent01d9eb357edcc8ab65c11f3dc0d00020d7c505f9 (diff)
src/w64.c : Improve handling of truncated files.
-rw-r--r--src/w64.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/w64.c b/src/w64.c
index 9d3229b..bd0e2d1 100644
--- a/src/w64.c
+++ b/src/w64.c
@@ -1,5 +1,5 @@
/*
-** Copyright (C) 1999-2014 Erik de Castro Lopo <erikd@mega-nerd.com>
+** Copyright (C) 1999-2015 Erik de Castro Lopo <erikd@mega-nerd.com>
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU Lesser General Public License as published by
@@ -307,8 +307,7 @@ w64_read_header (SF_PRIVATE *psf, int *blockalign, int *framesperblock)
psf_binheader_readf (psf, "e8", &chunk_size) ;
psf->dataoffset = psf_ftell (psf) ;
-
- psf->datalength = chunk_size - 24 ;
+ psf->datalength = SF_MIN (chunk_size - 24, psf->filelength - psf->dataoffset) ;
if (chunk_size % 8)
chunk_size += 8 - (chunk_size % 8) ;