summaryrefslogtreecommitdiff
path: root/libs/ardour/session_export.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2020-04-09 00:01:00 +0200
committerRobin Gareus <robin@gareus.org>2020-04-09 00:01:44 +0200
commita6afb31245a851caf468ab4d4c3296d7443b7f7f (patch)
treeb00746da61761bd9cef43912982213dea85f79bc /libs/ardour/session_export.cc
parentb8ce25fdab218673bd5e99f8899cf33f3c235ac4 (diff)
Safeguard against libaudiographer exceptions
Diffstat (limited to 'libs/ardour/session_export.cc')
-rw-r--r--libs/ardour/session_export.cc16
1 files changed, 14 insertions, 2 deletions
diff --git a/libs/ardour/session_export.cc b/libs/ardour/session_export.cc
index 385978aec7..d66be3ada3 100644
--- a/libs/ardour/session_export.cc
+++ b/libs/ardour/session_export.cc
@@ -251,7 +251,13 @@ void
Session::process_export_fw (pframes_t nframes)
{
if (!_export_rolling) {
- ProcessExport (0);
+ try {
+ ProcessExport (0);
+ } catch (std::exception & e) {
+ /* pre-roll export must not throw */
+ assert (0);
+ export_status->abort (true);
+ }
return;
}
@@ -306,7 +312,13 @@ Session::process_export_fw (pframes_t nframes)
fail_roll (ns);
}
- ProcessExport (ns);
+ try {
+ ProcessExport (ns);
+ } catch (std::exception & e) {
+ /* pre-roll export must not throw */
+ assert (0);
+ export_status->abort (true);
+ }
_remaining_latency_preroll -= ns;
remain -= ns;