17 lines
770 B
Diff
17 lines
770 B
Diff
diff -up libsndfile-1.0.17/src/caf.c.orig libsndfile-1.0.17/src/caf.c
|
|
--- libsndfile-1.0.17/src/caf.c.orig 2006-08-31 11:22:07.000000000 +0200
|
|
+++ libsndfile-1.0.17/src/caf.c 2010-07-07 15:25:35.579607380 +0200
|
|
@@ -282,6 +282,11 @@ caf_read_header (SF_PRIVATE *psf)
|
|
" Frames / packet : %u\n Channels / frame : %u\n Bits / channel : %u\n",
|
|
desc.fmt_id, desc.fmt_flags, desc.pkt_bytes, desc.pkt_frames, desc.channels_per_frame, desc.bits_per_chan) ;
|
|
|
|
+ if (desc.channels_per_frame > 200)
|
|
+ { psf_log_printf (psf, "**** Bad channels per frame value %u.\n", desc.channels_per_frame) ;
|
|
+ return SFE_MALFORMED_FILE ;
|
|
+ } ;
|
|
+
|
|
if (chunk_size > SIGNED_SIZEOF (DESC_CHUNK))
|
|
psf_binheader_readf (psf, "j", (int) (chunk_size - sizeof (DESC_CHUNK))) ;
|
|
|
|
|