$NetBSD: patch-ab,v 1.11 2011/07/14 09:49:01 drochner Exp $ SA45125 --- src/paf.c.orig 2011-03-23 09:01:02.000000000 +0000 +++ src/paf.c @@ -163,6 +163,9 @@ paf_read_header (SF_PRIVATE *psf) { PAF_FMT paf_fmt ; int marker ; + if (psf->filelength < PAF_HEADER_LENGTH) + return SFE_PAF_SHORT_HEADER ; + memset (&paf_fmt, 0, sizeof (paf_fmt)) ; psf_binheader_readf (psf, "pm", 0, &marker) ; @@ -199,8 +202,8 @@ paf_read_header (SF_PRIVATE *psf) psf->endian = SF_ENDIAN_BIG ; } ; - if (psf->filelength < PAF_HEADER_LENGTH) - return SFE_PAF_SHORT_HEADER ; + if (paf_fmt.channels > SF_MAX_CHANNELS) + return SFE_PAF_BAD_CHANNELS ; psf->datalength = psf->filelength - psf->dataoffset ;