summaryrefslogtreecommitdiffstats
path: root/gst/wavparse
diff options
context:
space:
mode:
authorStefan Kost <ensonic@users.sourceforge.net>2007-04-25 06:52:09 +0000
committerStefan Kost <ensonic@users.sourceforge.net>2007-04-25 06:52:09 +0000
commitfa7454bda286ba05847b552b7ed8382ec00cd520 (patch)
tree9882194a3f1d88f21a15c4dc5b1412f6048f2425 /gst/wavparse
parent7002f0336ba04f7e85c81a6287221fa906da3f42 (diff)
gst/wavparse/gstwavparse.c: Make header field check conditional. Fixes #433135
Original commit message from CVS: * gst/wavparse/gstwavparse.c: (gst_wavparse_stream_headers): Make header field check conditional. Fixes #433135
Diffstat (limited to 'gst/wavparse')
-rw-r--r--gst/wavparse/gstwavparse.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/gst/wavparse/gstwavparse.c b/gst/wavparse/gstwavparse.c
index 8c3590f4..e79d3524 100644
--- a/gst/wavparse/gstwavparse.c
+++ b/gst/wavparse/gstwavparse.c
@@ -1078,10 +1078,6 @@ gst_wavparse_stream_headers (GstWavParse * wav)
/* do more sanity checks of header fields
* (these can be sanitized by gst_riff_create_audio_caps()
*/
- if (header->blockalign >
- header->channels * (guint) ceil (header->size / 8.0))
- goto invalid_blockalign;
-
wav->format = header->format;
wav->rate = header->rate;
wav->channels = header->channels;
@@ -1102,6 +1098,10 @@ gst_wavparse_stream_headers (GstWavParse * wav)
wav->bps = 0;
break;
}
+ case GST_RIFF_WAVE_FORMAT_PCM:
+ if (wav->blockalign > wav->channels * (guint) ceil (wav->depth / 8.0))
+ goto invalid_blockalign;
+ /* fall through */
default:
if (wav->av_bps > wav->blockalign * wav->rate)
goto invalid_bps;
@@ -1317,7 +1317,6 @@ invalid_blockalign:
("Stream claims blockalign = %u, which is more than %u - invalid data",
header->blockalign,
header->channels * (guint) ceil (header->size / 8.0)));
- g_free (header);
g_free (codec_name);
return GST_FLOW_ERROR;
}