summaryrefslogtreecommitdiffstats
path: root/src/fig
diff options
context:
space:
mode:
authorMatthias P. Braendli <matthias.braendli@mpb.li>2018-03-01 11:52:43 +0100
committerMatthias P. Braendli <matthias.braendli@mpb.li>2018-03-01 11:52:43 +0100
commit04c4679074e505adcdd1611676baab0c06466934 (patch)
treef2cfb919b615c98adb79f6924cd3cf60a17a2260 /src/fig
parent715705de018f815b3695af983c8d6623ba73a9ae (diff)
downloaddabmux-04c4679074e505adcdd1611676baab0c06466934.tar.gz
dabmux-04c4679074e505adcdd1611676baab0c06466934.tar.bz2
dabmux-04c4679074e505adcdd1611676baab0c06466934.zip
Check that FIGs don't write too many bytes
Diffstat (limited to 'src/fig')
-rw-r--r--src/fig/FIGCarousel.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/fig/FIGCarousel.cpp b/src/fig/FIGCarousel.cpp
index e32ea39..bfd87c8 100644
--- a/src/fig/FIGCarousel.cpp
+++ b/src/fig/FIGCarousel.cpp
@@ -290,7 +290,15 @@ size_t FIGCarousel::carousel(
ss << "Assertion error: FIG" << fig_el->fig->figtype() << "/" <<
fig_el->fig->figextension() <<
" did not write enough data: (" << written << ")";
- throw std::runtime_error(ss.str());
+ throw std::logic_error(ss.str());
+ }
+ else if (written > available_size) {
+ std::stringstream ss;
+ ss << "Assertion error: FIG" << fig_el->fig->figtype() << "/" <<
+ fig_el->fig->figextension() <<
+ " wrote " << written << " bytes, but only " <<
+ available_size << " available!";
+ throw std::logic_error(ss.str());
}
if (written > 2) {