mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
MDEV-25461 Assertion `je->state == JST_KEY' failed in Geometry::create_from_json.
Handle invalid GEOJSON-s in Geometry::create_from_json().
This commit is contained in:
@@ -539,7 +539,11 @@ Geometry *Geometry::create_from_json(Geometry_buffer *buffer,
|
||||
goto handle_geometry_key;
|
||||
feature_type_found= 1;
|
||||
}
|
||||
else /* can't understand the type. */
|
||||
break;
|
||||
}
|
||||
else /* The "type" value can only be string. */
|
||||
break;
|
||||
}
|
||||
else if (key_len == coord_keyname_len &&
|
||||
memcmp(key_buf, coord_keyname, coord_keyname_len) == 0)
|
||||
@@ -556,6 +560,8 @@ Geometry *Geometry::create_from_json(Geometry_buffer *buffer,
|
||||
coord_start= je->value_begin;
|
||||
if (ci && ci != &geometrycollection_class)
|
||||
goto create_geom;
|
||||
if (json_skip_level(je))
|
||||
goto err_return;
|
||||
}
|
||||
}
|
||||
else if (key_len == geometries_keyname_len &&
|
||||
|
||||
Reference in New Issue
Block a user