BUG #21036, myOperation->getBlobHandle(..) on non-existing column cause segmentation fault

add judgement to avoid NULL pointer's operation(segmentaion fault)
This commit is contained in:
Justin.He/justin.he@qa3-104.qa.cn.tlan 2006-09-20 18:51:32 +08:00
parent dbd808add5
commit e88687121b
2 changed files with 21 additions and 3 deletions

View file

@ -319,13 +319,31 @@ NdbOperation::setValue( Uint32 anAttrId,
NdbBlob*
NdbOperation::getBlobHandle(const char* anAttrName)
{
return getBlobHandle(theNdbCon, m_currentTable->getColumn(anAttrName));
const NdbColumnImpl* col = m_currentTable->getColumn(anAttrName);
if (col == NULL)
{
setErrorCode(4004);
return NULL;
}
else
{
return getBlobHandle(theNdbCon, col);
}
}
NdbBlob*
NdbOperation::getBlobHandle(Uint32 anAttrId)
{
return getBlobHandle(theNdbCon, m_currentTable->getColumn(anAttrId));
const NdbColumnImpl* col = m_currentTable->getColumn(anAttrId);
if (col == NULL)
{
setErrorCode(4004);
return NULL;
}
else
{
return getBlobHandle(theNdbCon, col);
}
}
int

View file

@ -401,7 +401,7 @@ ErrorBundle ErrorCodes[] = {
* Still uncategorized
*/
{ 720, AE, "Attribute name reused in table definition" },
{ 4004, AE, "Attribute name not found in the Table" },
{ 4004, AE, "Attribute name or id not found in the table" },
{ 4100, AE, "Status Error in NDB" },
{ 4101, AE, "No connections to NDB available and connect failed" },