05_set-rate-overflow-no-return.patch (909B)
1 This is a fix for https://bugzilla.mozilla.org/show_bug.cgi?id=1274083 2 3 diff --git a/src/resample.c b/src/resample.c 4 --- a/src/resample.c 5 +++ b/src/resample.c 6 @@ -1129,18 +1129,19 @@ EXPORT int speex_resampler_set_rate_frac 7 8 st->num_rate /= fact; 9 st->den_rate /= fact; 10 11 if (old_den > 0) 12 { 13 for (i=0;i<st->nb_channels;i++) 14 { 15 - if (multiply_frac(&st->samp_frac_num[i],st->samp_frac_num[i],st->den_rate,old_den) != RESAMPLER_ERR_SUCCESS) 16 - return RESAMPLER_ERR_OVERFLOW; 17 + if (multiply_frac(&st->samp_frac_num[i],st->samp_frac_num[i],st->den_rate,old_den) != RESAMPLER_ERR_SUCCESS) { 18 + st->samp_frac_num[i] = st->den_rate-1; 19 + } 20 /* Safety net */ 21 if (st->samp_frac_num[i] >= st->den_rate) 22 st->samp_frac_num[i] = st->den_rate-1; 23 } 24 } 25 26 if (st->initialised) 27 return update_filter(st);