summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <jonas@perch.ndb.mysql.com>2005-12-14 14:03:50 +0100
committerunknown <jonas@perch.ndb.mysql.com>2005-12-14 14:03:50 +0100
commited7eaa4cca10cee8023e6ac22bf0e215f9f0fb85 (patch)
tree7454f289e591cad8ff5cf6f4617304bb411a9800
parent2d40e252310f491abc744eced6b20c4648f42fcf (diff)
parent57722e137efe1b20820fd972706c881cc69386c0 (diff)
downloadmariadb-git-ed7eaa4cca10cee8023e6ac22bf0e215f9f0fb85.tar.gz
Merge perch.ndb.mysql.com:/home/jonas/src/mysql-5.0-push
into perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new mysql-test/r/ndb_basic.result: Auto merged mysql-test/t/ndb_basic.test: Auto merged sql/ha_ndbcluster.cc: Auto merged storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp: Auto merged storage/ndb/src/kernel/vm/SimulatedBlock.cpp: merge
-rw-r--r--extra/innochecksum.c2
-rw-r--r--storage/ndb/src/kernel/vm/SimulatedBlock.cpp8
2 files changed, 7 insertions, 3 deletions
diff --git a/extra/innochecksum.c b/extra/innochecksum.c
index bae5f3e8821..eda5cef4647 100644
--- a/extra/innochecksum.c
+++ b/extra/innochecksum.c
@@ -28,7 +28,7 @@
#define _LARGEFILE_SOURCE
#define _LARGEFILE64_SOURCE
-#define _XOPEN_SOURCE /* needed to include getopt.h on some platforms. */
+#define _XOPEN_SOURCE 500 /* needed to include getopt.h on some platforms. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/storage/ndb/src/kernel/vm/SimulatedBlock.cpp b/storage/ndb/src/kernel/vm/SimulatedBlock.cpp
index 9d6919482cb..c6434a8255e 100644
--- a/storage/ndb/src/kernel/vm/SimulatedBlock.cpp
+++ b/storage/ndb/src/kernel/vm/SimulatedBlock.cpp
@@ -1886,6 +1886,8 @@ SimulatedBlock::xfrm_key(Uint32 tab, const Uint32* src,
xfrm_attr(keyAttr.attributeDescriptor, keyAttr.charsetInfo,
src, srcPos, dst, dstPos, dstSize);
keyPartLen[i++] = dstWords;
+ if (unlikely(dstWords == 0))
+ return 0;
}
if (0)
@@ -1952,7 +1954,8 @@ SimulatedBlock::xfrm_attr(Uint32 attrDesc, CHARSET_INFO* cs,
AttributeDescriptor::getType(attrDesc);
Uint32 lb, len;
bool ok = NdbSqlUtil::get_var_length(typeId, srcPtr, srcBytes, lb, len);
- ndbrequire(ok);
+ if (unlikely(!ok))
+ return 0;
Uint32 xmul = cs->strxfrm_multiply;
if (xmul == 0)
xmul = 1;
@@ -1963,7 +1966,8 @@ SimulatedBlock::xfrm_attr(Uint32 attrDesc, CHARSET_INFO* cs,
Uint32 dstLen = xmul * (srcBytes - lb);
ndbrequire(dstLen <= ((dstSize - dstPos) << 2));
int n = NdbSqlUtil::strnxfrm_bug7284(cs, dstPtr, dstLen, srcPtr + lb, len);
- ndbrequire(n != -1);
+ if (unlikely(n == -1))
+ return 0;
while ((n & 3) != 0)
{
dstPtr[n++] = 0;