From e27ab01dd0a1d58845632b76a0f11167a2133007 Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Tue, 23 Feb 2016 11:31:47 -0800 Subject: [PATCH] Better coordinate validation --- src/JsonHelper.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/JsonHelper.cc b/src/JsonHelper.cc index a22846b64..d3738d656 100644 --- a/src/JsonHelper.cc +++ b/src/JsonHelper.cc @@ -58,10 +58,17 @@ bool JsonHelper::toQGeoCoordinate(const QJsonValue& jsonValue, QGeoCoordinate& c QJsonArray coordinateArray = jsonValue.toArray(); int requiredCount = altitudeRequired ? 3 : 2; if (coordinateArray.count() != requiredCount) { - errorString = QString("Json array must contains %1 values").arg(requiredCount); + errorString = QString("Coordinate array must contain %1 values").arg(requiredCount); return false; } + foreach(const QJsonValue& jsonValue, coordinateArray) { + if (jsonValue.type() != QJsonValue::Double) { + errorString = QString("Coordinate array may only contain double values, found: %1").arg(jsonValue.type()); + return false; + } + } + coordinate = QGeoCoordinate(coordinateArray[0].toDouble(), coordinateArray[1].toDouble()); if (altitudeRequired) { coordinate.setAltitude(coordinateArray[2].toDouble()); -- 2.22.0