From 444b9e89033aa4171254a3622c583e1d791c7e9f Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Mon, 22 Aug 2016 14:47:19 +0200 Subject: [PATCH] Parse information from harvid independent from the locale This fixes a crash where aspect ratio "0.5" from harvid was interpreted as "0" in the French locale (expecting 0,5). Note: harvid uses a portable, not localized snprintf() implementation --- gtk2_ardour/utils_videotl.cc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gtk2_ardour/utils_videotl.cc b/gtk2_ardour/utils_videotl.cc index 684bbf920c..d2bec87d9e 100644 --- a/gtk2_ardour/utils_videotl.cc +++ b/gtk2_ardour/utils_videotl.cc @@ -260,6 +260,7 @@ VideoUtils::video_query_info ( double &video_aspect_ratio ) { + LocaleGuard lg; char url[2048]; snprintf(url, sizeof(url), "%s%sinfo/?file=%s&format=csv" @@ -282,6 +283,12 @@ VideoUtils::video_query_info ( video_aspect_ratio = atof (lines.at(0).at(3)); video_file_fps = atof (lines.at(0).at(4)); video_duration = atoll(lines.at(0).at(5)); + + if (video_aspect_ratio < 0.01 || video_file_fps < 0.01) { + /* catch errors early, aspect == 0 or fps == 0 will + * wreak havoc down the road */ + return false; + } return true; }