Limit buffering time value

This avoids unreasonable values which could lead to integer overflow.
This commit is contained in:
Romain Vimont 2024-02-01 17:27:14 +01:00
parent be3f949aa5
commit 1ea9e8f693

View File

@ -1385,7 +1385,11 @@ parse_max_fps(const char *s, uint16_t *max_fps) {
static bool static bool
parse_buffering_time(const char *s, sc_tick *tick) { parse_buffering_time(const char *s, sc_tick *tick) {
long value; long value;
bool ok = parse_integer_arg(s, &value, false, 0, 0x7FFFFFFF, // In practice, buffering time should not exceed a few seconds.
// Limit it to some arbitrary value (1 hour) to prevent 32-bit overflow
// when multiplied by the audio sample size and the number of samples per
// millisecond.
bool ok = parse_integer_arg(s, &value, false, 0, 60 * 60 * 1000,
"buffering time"); "buffering time");
if (!ok) { if (!ok) {
return false; return false;