From b01b6929fb556c82d16c9be7caf38a411e0a00f7 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Tue, 1 Dec 2020 22:28:39 -0700 Subject: [PATCH] fix potential for overflow when converting larger sample counts to superclock. int_div_rount was using int (32 bits) which could overflow. --- libs/temporal/temporal/superclock.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/temporal/temporal/superclock.h b/libs/temporal/temporal/superclock.h index 369aed174a..06e769007d 100644 --- a/libs/temporal/temporal/superclock.h +++ b/libs/temporal/temporal/superclock.h @@ -30,7 +30,7 @@ typedef int64_t superclock_t; extern superclock_t superclock_ticks_per_second; static inline superclock_t superclock_to_samples (superclock_t s, int sr) { return int_div_round (s * sr, superclock_ticks_per_second); } -static inline superclock_t samples_to_superclock (int samples, int sr) { return int_div_round (samples * superclock_ticks_per_second, superclock_t (sr)); } +static inline superclock_t samples_to_superclock (int64_t samples, int sr) { return int_div_round (samples * superclock_ticks_per_second, superclock_t (sr)); } /* this needs to be updated per-thread at a suitable time */