ext/faad/gstfaad.c (gst_faad_chain): Fix a bad format argument, and a potential int overflow.

Original commit message from CVS:
2008-03-18  Andy Wingo  <wingo@pobox.com>

* ext/faad/gstfaad.c (gst_faad_chain): Fix a bad format argument,
and a potential int overflow.

* ext/faad/gstfaad.h: Include <neaacdec.h> if faad is neaac.
Avoids a #warning about an ignored #pragma.
This commit is contained in:
Andy Wingo 2008-03-18 10:12:40 +00:00
parent 0361555869
commit 603b409c33
3 changed files with 21 additions and 1 deletions

View file

@ -1,3 +1,11 @@
2008-03-18 Andy Wingo <wingo@pobox.com>
* ext/faad/gstfaad.c (gst_faad_chain): Fix a bad format argument,
and a potential int overflow.
* ext/faad/gstfaad.h: Include <neaacdec.h> if faad is neaac.
Avoids a #warning about an ignored #pragma.
2008-03-17 Zaheer Abbas Merali <zaheerabbas at merali dot org>
* examples/switch/switcher.c:

View file

@ -1337,12 +1337,20 @@ gst_faad_chain (GstPad * pad, GstBuffer * buffer)
}
}
if (info.samples > G_MAXUINT / faad->bps) {
/* C's lovely propensity for int overflow.. */
GST_ELEMENT_ERROR (faad, STREAM, DECODE, (NULL),
("Output buffer too large"));
ret = GST_FLOW_ERROR;
goto out;
}
/* play decoded data */
if (info.samples > 0) {
guint bufsize = info.samples * faad->bps;
guint num_samples = info.samples / faad->channels;
GST_DEBUG_OBJECT (faad, "decoded %d samples", info.samples);
GST_DEBUG_OBJECT (faad, "decoded %d samples", (guint) info.samples);
/* note: info.samples is total samples, not per channel */
ret =

View file

@ -21,7 +21,11 @@
#define __GST_FAAD_H__
#include <gst/gst.h>
#ifdef FAAD_IS_NEAAC
#include <neaacdec.h>
#else
#include <faad.h>
#endif
G_BEGIN_DECLS