summaryrefslogtreecommitdiff
path: root/ndb
diff options
context:
space:
mode:
authorunknown <mronstrom@mysql.com>2004-09-02 15:13:50 +0200
committerunknown <mronstrom@mysql.com>2004-09-02 15:13:50 +0200
commit9e9490612ccb6130e9de90add1a54423b211b949 (patch)
tree2328ae7a05c9e91589b9fdfbd54506b6ecd6423a /ndb
parent58b03d4594f70a9a30accf244e669113e1798ddf (diff)
downloadmariadb-git-9e9490612ccb6130e9de90add1a54423b211b949.tar.gz
Fix for overwriting of the stack when table name length was larger
than 32 bytes. getWords interpreted length as number of words and got number of bytes.
Diffstat (limited to 'ndb')
-rw-r--r--ndb/src/kernel/blocks/dbdict/Dbdict.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/ndb/src/kernel/blocks/dbdict/Dbdict.cpp b/ndb/src/kernel/blocks/dbdict/Dbdict.cpp
index d7c4b8a2222..7126842459e 100644
--- a/ndb/src/kernel/blocks/dbdict/Dbdict.cpp
+++ b/ndb/src/kernel/blocks/dbdict/Dbdict.cpp
@@ -5660,7 +5660,7 @@ void Dbdict::execGET_TABINFOREQ(Signal* signal)
signal->getSection(ssPtr,GetTabInfoReq::TABLE_NAME);
SimplePropertiesSectionReader r0(ssPtr, getSectionSegmentPool());
r0.reset(); // undo implicit first()
- if(r0.getWords((Uint32*)tableName, len))
+ if(r0.getWords((Uint32*)tableName, ((len + 3)/4)))
memcpy(keyRecord.tableName, tableName, len);
else {
jam();