libbluray | branch: master | hpi1 <[email protected]> | Fri Nov 7 12:58:03 2014 +0200| [9552cc2ee38b286970b10f3317fdc82f220adccc] | committer: hpi1
bd_seek_time(): validate timestamp > http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=9552cc2ee38b286970b10f3317fdc82f220adccc --- src/libbluray/bluray.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/libbluray/bluray.c b/src/libbluray/bluray.c index 9114ba4..7ddfbec 100644 --- a/src/libbluray/bluray.c +++ b/src/libbluray/bluray.c @@ -1579,6 +1579,11 @@ int64_t bd_seek_time(BLURAY *bd, uint64_t tick) uint32_t clip_pkt, out_pkt; NAV_CLIP *clip; + if (tick >> 33) { + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "bd_seek_time("PRIu64") failed: invalid timestamp\n", tick); + return bd->s_pos; + } + tick /= 2; bd_mutex_lock(&bd->mutex); @@ -1589,7 +1594,7 @@ int64_t bd_seek_time(BLURAY *bd, uint64_t tick) _change_angle(bd); // Find the closest access unit to the requested position - clip = nav_time_search(bd->title, tick, &clip_pkt, &out_pkt); + clip = nav_time_search(bd->title, (uint32_t)tick, &clip_pkt, &out_pkt); _seek_internal(bd, clip, out_pkt, clip_pkt); _______________________________________________ libbluray-devel mailing list [email protected] https://mailman.videolan.org/listinfo/libbluray-devel
