summaryrefslogtreecommitdiff
path: root/src/libfaad/pulse.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libfaad/pulse.c')
-rw-r--r--src/libfaad/pulse.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/libfaad/pulse.c b/src/libfaad/pulse.c
index 024c473d9..d2a7c6ec2 100644
--- a/src/libfaad/pulse.c
+++ b/src/libfaad/pulse.c
@@ -16,7 +16,7 @@
** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
-** $Id: pulse.c,v 1.2 2002/12/16 19:00:59 miguelfreitas Exp $
+** $Id: pulse.c,v 1.3 2003/04/12 14:58:47 miguelfreitas Exp $
**/
#include "common.h"
@@ -25,7 +25,7 @@
#include "syntax.h"
#include "pulse.h"
-void pulse_decode(ic_stream *ics, int16_t *spec_data)
+void pulse_decode(ic_stream *ics, int16_t *spec_data, uint16_t framelen)
{
uint8_t i;
uint16_t k;
@@ -35,6 +35,10 @@ void pulse_decode(ic_stream *ics, int16_t *spec_data)
for(i = 0; i <= pul->number_pulse; i++) {
k += pul->pulse_offset[i];
+
+ if (k >= framelen)
+ return; /* should not be possible */
+
if (spec_data[k] > 0)
spec_data[k] += pul->pulse_amp[i];
else