diff options
| author | Samuel Tardieu <sam@rfc1149.net> | 2014-02-28 22:16:13 +0100 |
|---|---|---|
| committer | Samuel Tardieu <sam@rfc1149.net> | 2014-02-28 22:16:13 +0100 |
| commit | 8df3d95d50180e8130342684afadb5d8d95616ac (patch) | |
| tree | e2b2d1d60cb895bcaeedf835d6885a19f716c180 /main/src/cgeo/geocaching | |
| parent | ce4c2d36b88e126aa245f7549a9a873e761e5c57 (diff) | |
| download | cgeo-8df3d95d50180e8130342684afadb5d8d95616ac.zip cgeo-8df3d95d50180e8130342684afadb5d8d95616ac.tar.gz cgeo-8df3d95d50180e8130342684afadb5d8d95616ac.tar.bz2 | |
fix #3594: personal note parsing is too loose
Diffstat (limited to 'main/src/cgeo/geocaching')
| -rw-r--r-- | main/src/cgeo/geocaching/Waypoint.java | 1 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/geopoint/Geopoint.java | 4 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/geopoint/GeopointParser.java | 8 |
3 files changed, 9 insertions, 4 deletions
diff --git a/main/src/cgeo/geocaching/Waypoint.java b/main/src/cgeo/geocaching/Waypoint.java index 6626c4d..efedff5 100644 --- a/main/src/cgeo/geocaching/Waypoint.java +++ b/main/src/cgeo/geocaching/Waypoint.java @@ -3,7 +3,6 @@ package cgeo.geocaching; import cgeo.geocaching.enumerations.LoadFlags; import cgeo.geocaching.enumerations.WaypointType; import cgeo.geocaching.geopoint.Geopoint; -import cgeo.geocaching.utils.Log; import cgeo.geocaching.utils.MatcherWrapper; import org.apache.commons.lang3.StringUtils; diff --git a/main/src/cgeo/geocaching/geopoint/Geopoint.java b/main/src/cgeo/geocaching/geopoint/Geopoint.java index f21df01..3d69bd4 100644 --- a/main/src/cgeo/geocaching/geopoint/Geopoint.java +++ b/main/src/cgeo/geocaching/geopoint/Geopoint.java @@ -51,8 +51,8 @@ public final class Geopoint implements ICoordinates, Parcelable { */ public Geopoint(final String text) { final Geopoint parsed = GeopointParser.parse(text); - this.latitude = parsed.latitude; - this.longitude = parsed.longitude; + latitude = parsed.latitude; + longitude = parsed.longitude; } /** diff --git a/main/src/cgeo/geocaching/geopoint/GeopointParser.java b/main/src/cgeo/geocaching/geopoint/GeopointParser.java index c043d6f..e59cd23 100644 --- a/main/src/cgeo/geocaching/geopoint/GeopointParser.java +++ b/main/src/cgeo/geocaching/geopoint/GeopointParser.java @@ -57,7 +57,6 @@ class GeopointParser { */ public static Geopoint parse(final String text) { final ResultWrapper latitudeWrapper = parseHelper(text, LatLon.LAT); - final double lat = latitudeWrapper.result; // cut away the latitude part when parsing the longitude final ResultWrapper longitudeWrapper = parseHelper(text.substring(latitudeWrapper.matcherPos + latitudeWrapper.matcherLength), LatLon.LON); @@ -65,7 +64,14 @@ class GeopointParser { throw new Geopoint.ParseException("Distance between latitude and longitude text is to large.", LatLon.LON); } + final double lat = latitudeWrapper.result; final double lon = longitudeWrapper.result; + if (lat > 90 || lat < -90) { + throw new Geopoint.ParseException(text, LatLon.LAT); + } + if (lon > 180 || lon < -180) { + throw new Geopoint.ParseException(text, LatLon.LON); + } return new Geopoint(lat, lon); } |
