Make sure guint64 is not overflown
diff --git a/glib/poppler-movie.cc b/glib/poppler-movie.cc
index f8e6e7e..14b75e0 100644
--- a/glib/poppler-movie.cc
+++ b/glib/poppler-movie.cc
@@ -118,17 +118,19 @@
movie->rate = poppler_movie->getActivationParameters()->rate;
- if (poppler_movie->getActivationParameters()->start.units_per_second > 0) {
- movie->start = 1000000000L*
- poppler_movie->getActivationParameters()->start.units/
+ if (poppler_movie->getActivationParameters()->start.units_per_second > 0 &&
+ poppler_movie->getActivationParameters()->start.units <= G_MAXUINT64 / 1000000000) {
+ movie->start = 1000000000L *
+ poppler_movie->getActivationParameters()->start.units /
poppler_movie->getActivationParameters()->start.units_per_second;
} else {
movie->start = 0L;
}
- if (poppler_movie->getActivationParameters()->duration.units_per_second > 0) {
- movie->duration = 1000000000L*
- poppler_movie->getActivationParameters()->duration.units/
+ if (poppler_movie->getActivationParameters()->duration.units_per_second > 0 &&
+ poppler_movie->getActivationParameters()->duration.units <= G_MAXUINT64 / 1000000000) {
+ movie->duration = 1000000000L *
+ poppler_movie->getActivationParameters()->duration.units /
poppler_movie->getActivationParameters()->duration.units_per_second;
} else {
movie->duration = 0L;