From eff44583326eef26345ec194915102bbc9f87be0 Mon Sep 17 00:00:00 2001 From: Eivind Kvedalen Date: Mon, 28 Mar 2016 00:38:52 +0200 Subject: [PATCH] Spreadsheet: Fixed crash when invalid unit was given as input. --- src/Mod/Spreadsheet/App/Cell.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Mod/Spreadsheet/App/Cell.cpp b/src/Mod/Spreadsheet/App/Cell.cpp index 0867951cec..750b5c06bd 100644 --- a/src/Mod/Spreadsheet/App/Cell.cpp +++ b/src/Mod/Spreadsheet/App/Cell.cpp @@ -364,8 +364,10 @@ void Cell::setDisplayUnit(const std::string &unit) { DisplayUnit newDisplayUnit; if (unit.size() > 0) { - std::auto_ptr e(ExpressionParser::parseUnit(owner->sheet(), unit.c_str())); + boost::shared_ptr e(ExpressionParser::parseUnit(owner->sheet(), unit.c_str())); + if (!e) + throw Base::Exception("Invalid unit"); newDisplayUnit = DisplayUnit(unit, e->getUnit(), e->getScaler()); }