From 6c80dd4eae443acfa90e07e70617b86093d5ceff 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 0867951ce..750b5c06b 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()); }