diff --git a/src/lib/time.c b/src/lib/time.c index 91da91c..541fa26 100644 --- a/src/lib/time.c +++ b/src/lib/time.c @@ -7,6 +7,7 @@ #include #include +#include long time_msf_to_frame(int m, int s, int f) { @@ -34,11 +35,16 @@ void time_frame_to_msf(long frame, int *m, int *s, int *f) /* print frame in mm:ss:ff format */ char *time_frame_to_mmssff(long f) { - static char msf[10]; + static char msf[9]; int minutes, seconds, frames; + if (f < 0 || f >= 75 * 60 * 100) { + strcpy(msf, "00:00:00"); + return msf; + } + msf_frame_to_msf(f, &minutes, &seconds, &frames); - sprintf(msf, "%02d:%02d:%02d", minutes, seconds, frames); + snprintf(msf, sizeof(msf), "%02d:%02d:%02d", minutes, seconds, frames); return msf; }