mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Merging from 5.5
This commit is contained in:
@ -507,12 +507,13 @@ uint Gis_line_string::init_from_wkb(const char *wkb, uint len,
|
||||
const char *wkb_end;
|
||||
Gis_point p;
|
||||
|
||||
if (len < 4)
|
||||
if (len < 4 ||
|
||||
(n_points= wkb_get_uint(wkb, bo)) < 1 ||
|
||||
n_points > max_n_points)
|
||||
return 0;
|
||||
n_points= wkb_get_uint(wkb, bo);
|
||||
proper_length= 4 + n_points * POINT_DATA_SIZE;
|
||||
|
||||
if (!n_points || len < proper_length || res->reserve(proper_length))
|
||||
if (len < proper_length || res->reserve(proper_length))
|
||||
return 0;
|
||||
|
||||
res->q_append(n_points);
|
||||
@ -1054,9 +1055,9 @@ uint Gis_multi_point::init_from_wkb(const char *wkb, uint len, wkbByteOrder bo,
|
||||
Gis_point p;
|
||||
const char *wkb_end;
|
||||
|
||||
if (len < 4)
|
||||
if (len < 4 ||
|
||||
(n_points= wkb_get_uint(wkb, bo)) > max_n_points)
|
||||
return 0;
|
||||
n_points= wkb_get_uint(wkb, bo);
|
||||
proper_size= 4 + n_points * (WKB_HEADER_SIZE + POINT_DATA_SIZE);
|
||||
|
||||
if (len < proper_size || res->reserve(proper_size))
|
||||
|
Reference in New Issue
Block a user