MDEV-4295 Server crashes in get_point on a query with Area, AsBinary, MultiPoint.
Need to check if the number of points is 0 for the polygon.
This commit is contained in:
parent
15a7335d77
commit
ef737284b4
@ -1108,4 +1108,10 @@ NULL
|
||||
SELECT Centroid( AsBinary( LineString(Point(0,0), Point(0,0), Point(0,0) )));
|
||||
Centroid( AsBinary( LineString(Point(0,0), Point(0,0), Point(0,0) )))
|
||||
NULL
|
||||
#
|
||||
# MDEV-4295 Server crashes in get_point on a query with Area, AsBinary, MultiPoint
|
||||
#
|
||||
SELECT Area(AsBinary(MultiPoint(Point(0,9), Point(0,1), Point(2,2))));
|
||||
Area(AsBinary(MultiPoint(Point(0,9), Point(0,1), Point(2,2))))
|
||||
NULL
|
||||
End of 5.1 tests
|
||||
|
@ -839,4 +839,9 @@ select geometryn(0x0100000000070000000100000001030000000200000000000000ffffff0f,
|
||||
--echo #
|
||||
|
||||
SELECT Centroid( AsBinary( LineString(Point(0,0), Point(0,0), Point(0,0) )));
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-4295 Server crashes in get_point on a query with Area, AsBinary, MultiPoint
|
||||
--echo #
|
||||
SELECT Area(AsBinary(MultiPoint(Point(0,9), Point(0,1), Point(2,2))));
|
||||
--echo End of 5.1 tests
|
||||
|
@ -868,7 +868,7 @@ int Gis_polygon::area(double *ar, const char **end_of_data) const
|
||||
if (no_data(data, 4))
|
||||
return 1;
|
||||
n_points= uint4korr(data);
|
||||
if (n_points > max_n_points ||
|
||||
if (n_points == 0 || n_points > max_n_points ||
|
||||
no_data(data, (SIZEOF_STORED_DOUBLE*2) * n_points))
|
||||
return 1;
|
||||
get_point(&prev_x, &prev_y, data+4);
|
||||
@ -989,7 +989,7 @@ int Gis_polygon::centroid_xy(double *x, double *y) const
|
||||
return 1;
|
||||
org_n_points= n_points= uint4korr(data);
|
||||
data+= 4;
|
||||
if (n_points > max_n_points ||
|
||||
if (n_points == 0 || n_points > max_n_points ||
|
||||
no_data(data, (SIZEOF_STORED_DOUBLE*2) * n_points))
|
||||
return 1;
|
||||
get_point(&prev_x, &prev_y, data);
|
||||
|
Loading…
x
Reference in New Issue
Block a user