mirror of
https://github.com/qdrant/qdrant.git
synced 2026-07-29 06:01:05 -05:00
`FieldCondition::validate` checked geo polygon *shape* (point count and closure) but never the *coordinate ranges* of any geo sub-condition. A gRPC filter with latitude outside [-90, 90] or longitude outside [-180, 180] (in geo_bounding_box, geo_radius, or geo_polygon) passed validation, reached the geo index, and panicked during geohash encoding, which expects pre-validated input. Reject out-of-range coordinates at the API boundary for all three geo sub-conditions, mirroring `segment::types::GeoPoint::validate`. The bounds are duplicated because the `api` crate does not depend on `segment`. Includes a regression test covering geo_radius, geo_bounding_box, and a well-formed (shape-valid) geo_polygon with out-of-range coordinates.