PulseAudio Marge Bot pushed to branch master at PulseAudio / pulseaudio
Commits: 325108e5 by Georg Chini at 2022-05-17T11:09:29+00:00 time-smoother-2: Fix integer type problem The byte_count argument of pa_smoother_2_get_delay() was defined as size_t which lead to overflow problems on 32-bit architectures. Changed type to uint_64. Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/700> - - - - - 3 changed files: - src/pulse/stream.c - src/pulsecore/time-smoother_2.c - src/pulsecore/time-smoother_2.h Changes: ===================================== src/pulse/stream.c ===================================== @@ -1816,8 +1816,8 @@ static pa_usec_t calc_time(const pa_stream *s, bool ignore_transport) { } #ifdef USE_SMOOTHER_2 -static inline size_t calc_bytes(pa_stream *s, bool ignore_transport) { - return pa_usec_to_bytes(calc_time(s, ignore_transport), &s->sample_spec); +static inline uint64_t calc_bytes(pa_stream *s, bool ignore_transport) { + return (uint64_t)(calc_time(s, ignore_transport) * s->sample_spec.rate / PA_USEC_PER_SEC * pa_frame_size(&s->sample_spec)); } #endif ===================================== src/pulsecore/time-smoother_2.c ===================================== @@ -258,7 +258,7 @@ void pa_smoother_2_put(pa_smoother_2 *s, pa_usec_t time_stamp, int64_t byte_coun } /* Calculate the current latency. For a source, the sign must be inverted */ -int64_t pa_smoother_2_get_delay(pa_smoother_2 *s, pa_usec_t time_stamp, size_t byte_count) { +int64_t pa_smoother_2_get_delay(pa_smoother_2 *s, pa_usec_t time_stamp, uint64_t byte_count) { int64_t now, delay; pa_assert(s); ===================================== src/pulsecore/time-smoother_2.h ===================================== @@ -37,7 +37,7 @@ void pa_smoother_2_resume(pa_smoother_2 *s, pa_usec_t time_stamp); void pa_smoother_2_put(pa_smoother_2 *s, pa_usec_t time_stamp, int64_t byte_count); /* Calculate the current latency. For a source, the sign of the result must be inverted */ -int64_t pa_smoother_2_get_delay(pa_smoother_2 *s, pa_usec_t time_stamp, size_t byte_count); +int64_t pa_smoother_2_get_delay(pa_smoother_2 *s, pa_usec_t time_stamp, uint64_t byte_count); /* Convert system time since start to sound card time */ pa_usec_t pa_smoother_2_get(pa_smoother_2 *s, pa_usec_t time_stamp); /* Convert a time interval from sound card time to system time */ View it on GitLab: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/commit/325108e532e770a7b5951b84acb55ff95a568535 -- View it on GitLab: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/commit/325108e532e770a7b5951b84acb55ff95a568535 You're receiving this email because of your account on gitlab.freedesktop.org.