diff options
author | Thiago Sousa Santos <thiagoss@redmoon.(none)> | 2009-11-16 14:57:53 -0300 |
---|---|---|
committer | Thiago Sousa Santos <thiagoss@redmoon.(none)> | 2009-11-17 23:04:53 -0300 |
commit | b53243fed3d1644aa3b219a6d3a36168939be831 (patch) | |
tree | d94e126e84c6dfd7128b47b97bc9a8b4bc05d331 | |
parent | 1d155a6357f3e42786ffdb75c65274e82bed15c6 (diff) |
qtmux: do not add size to the pointer variable
Do not wrongly add the result of the function to the
pointer to the buffer size. Instead, check the result
to see if the serialization was ok.
Based on a patch by: "Carsten Kroll <car@ximidi.com>"
Fixes #602106
-rw-r--r-- | gst/qtmux/atoms.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/gst/qtmux/atoms.c b/gst/qtmux/atoms.c index a0844c2e9..57b9aa483 100644 --- a/gst/qtmux/atoms.c +++ b/gst/qtmux/atoms.c @@ -1909,11 +1909,15 @@ atom_stsd_copy_data (AtomSTSD * stsd, guint8 ** buffer, guint64 * size, break; default: if (se->kind == VIDEO) { - size += sample_entry_mp4v_copy_data ((SampleTableEntryMP4V *) - walker->data, buffer, size, offset); + if (!sample_entry_mp4v_copy_data ((SampleTableEntryMP4V *) + walker->data, buffer, size, offset)) { + return 0; + } } else if (se->kind == AUDIO) { - size += sample_entry_mp4a_copy_data ((SampleTableEntryMP4A *) - walker->data, buffer, size, offset); + if (!sample_entry_mp4a_copy_data ((SampleTableEntryMP4A *) + walker->data, buffer, size, offset)) { + return 0; + } } else { if (!atom_hint_sample_entry_copy_data ( (AtomHintSampleEntry *) walker->data, buffer, size, offset)) { |