summaryrefslogtreecommitdiff
path: root/audio/libsndfile/patches/patch-ab
diff options
context:
space:
mode:
Diffstat (limited to 'audio/libsndfile/patches/patch-ab')
-rw-r--r--audio/libsndfile/patches/patch-ab27
1 files changed, 27 insertions, 0 deletions
diff --git a/audio/libsndfile/patches/patch-ab b/audio/libsndfile/patches/patch-ab
new file mode 100644
index 00000000000..d66770c5936
--- /dev/null
+++ b/audio/libsndfile/patches/patch-ab
@@ -0,0 +1,27 @@
+$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 ;
+