diff options
Diffstat (limited to 'contrib/libdvdnav/A00-tmap-divide-zero.patch')
-rw-r--r-- | contrib/libdvdnav/A00-tmap-divide-zero.patch | 34 |
1 files changed, 0 insertions, 34 deletions
diff --git a/contrib/libdvdnav/A00-tmap-divide-zero.patch b/contrib/libdvdnav/A00-tmap-divide-zero.patch deleted file mode 100644 index 442e1e212..000000000 --- a/contrib/libdvdnav/A00-tmap-divide-zero.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 320b88d3489a8dc03c88252fededd8db1bb7964e Mon Sep 17 00:00:00 2001 -From: John Sullivan <[email protected]> -Date: Fri, 9 Aug 2019 13:33:49 +0100 -Subject: [PATCH] Avoid division-by-zero when tmap search returns two tmap - entries with the same vobu_idx (which can happen at the end of a title). - ---- - src/searching.c | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - -diff --git a/src/searching.c b/src/searching.c -index f638b613..6e6b78b2 100644 ---- a/src/searching.c -+++ b/src/searching.c -@@ -1094,8 +1094,14 @@ static int32_t dvdnav_tmap_calc_time_for_tmap_entry(dvdnav_jump_args_t *args, - } - - /* calc position of cell relative to lo */ -- vobu_pct = ((pos->vobu_idx - lo->vobu_idx) * 1000) -- / ( hi->vobu_idx - lo->vobu_idx); -+ if (hi->vobu_idx == lo->vobu_idx) { -+ /* We are at the very end - pos should also equal lo so force that -+ * rather than hit the divide-by-zero. */ -+ vobu_pct = 0; -+ } else { -+ vobu_pct = ((pos->vobu_idx - lo->vobu_idx) * 1000) -+ / ( hi->vobu_idx - lo->vobu_idx); -+ } - if (vobu_pct < 0 || vobu_pct > 1000) { - fprintf(MSG_OUT, "vobu_pct must be between 0 and 1000"); - return 0; --- -2.21.0 - |