diff options
Diffstat (limited to 'src/libfaad/pulse.c')
-rw-r--r-- | src/libfaad/pulse.c | 8 |
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 |