Commit 16e0085f authored by Bradley Sepos's avatar Bradley Sepos

contrib: Add small patch fix to libdvdnav.

parent b3617b0e
From 320b88d3489a8dc03c88252fededd8db1bb7964e Mon Sep 17 00:00:00 2001
From: John Sullivan <jsgthb@kanargh.org.uk>
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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment