1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +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:
Alexey Botchkov
2021-06-28 11:52:00 +04:00
parent 4e4f742ed7
commit 8147d2e618
3 changed files with 23 additions and 0 deletions

View File

@ -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 &&