diff options
author | unknown <hf@deer.(none)> | 2004-12-10 16:06:49 +0400 |
---|---|---|
committer | unknown <hf@deer.(none)> | 2004-12-10 16:06:49 +0400 |
commit | 95056a0b657b6d4f3a9106e4f21dfdf348da3690 (patch) | |
tree | fac5d0ecf6bba7008a8028e86bee3f9cee4960a1 /myisam/sp_key.c | |
parent | 7a60d1558a89df5f198884d360a14bf2b48f2c49 (diff) | |
download | mariadb-git-95056a0b657b6d4f3a9106e4f21dfdf348da3690.tar.gz |
Fix for bug #6516 (Server crash loading spatial data)
(after discussion with SerG)
include/my_base.h:
Handler error code added
myisam/mi_write.c:
New error code handled
myisam/rt_index.c:
check for zero length added
myisam/sp_key.c:
zero length check added
mysql-test/r/gis-rtree.result:
appropriate test result
mysql-test/t/gis-rtree.test:
test case
sql/handler.cc:
new error code handling added
Diffstat (limited to 'myisam/sp_key.c')
-rw-r--r-- | myisam/sp_key.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/myisam/sp_key.c b/myisam/sp_key.c index 0e424a9e193..b61e8094cde 100644 --- a/myisam/sp_key.c +++ b/myisam/sp_key.c @@ -50,6 +50,11 @@ uint sp_make_key(register MI_INFO *info, uint keynr, uchar *key, dlen = _mi_calc_blob_length(keyseg->bit_start, pos); memcpy_fixed(&dptr, pos + keyseg->bit_start, sizeof(char*)); + if (!dptr) + { + my_errno= HA_ERR_NULL_IN_SPATIAL; + return 0; + } sp_mbr_from_wkb(dptr + 4, dlen - 4, SPDIMS, mbr); /* SRID */ for (i = 0, keyseg = keyinfo->seg; keyseg->type; keyseg++, i++) |