summaryrefslogtreecommitdiff
path: root/ndb
diff options
context:
space:
mode:
authorunknown <lzhou/root@dev3-138.dev.cn.tlan>2006-11-01 10:50:19 +0000
committerunknown <lzhou/root@dev3-138.dev.cn.tlan>2006-11-01 10:50:19 +0000
commite997b3622ae48f5a710d5fb91b8a012ba8a35266 (patch)
treeb67c5cc43ffca2419fd916aef5af0f8d3ae7583d /ndb
parentc55f25ca71a4db4e35b55fbf1db9cc8b3c10a50c (diff)
downloadmariadb-git-e997b3622ae48f5a710d5fb91b8a012ba8a35266.tar.gz
BUG#21052 Modify the overflow error existed in last patch.
ndb/include/ndbapi/ndberror.h: Change unsigned int to int ndb/src/mgmsrv/Services.cpp: Modify the overflow error existed in last patch. Change ther length of m_text to 512. ndb/src/ndbapi/ndberror.c: Change the parameter of ndb_error_string from unsinged int to int.
Diffstat (limited to 'ndb')
-rw-r--r--ndb/include/ndbapi/ndberror.h2
-rw-r--r--ndb/src/mgmsrv/Services.cpp9
-rw-r--r--ndb/src/ndbapi/ndberror.c7
3 files changed, 12 insertions, 6 deletions
diff --git a/ndb/include/ndbapi/ndberror.h b/ndb/include/ndbapi/ndberror.h
index 2225f68f08d..4d4eddfe617 100644
--- a/ndb/include/ndbapi/ndberror.h
+++ b/ndb/include/ndbapi/ndberror.h
@@ -93,7 +93,7 @@ typedef ndberror_classification_enum ndberror_classification;
const char *ndberror_status_message(ndberror_status);
const char *ndberror_classification_message(ndberror_classification);
void ndberror_update(ndberror_struct *);
-int ndb_error_string(int err_no, char *str, unsigned int size);
+int ndb_error_string(int err_no, char *str, int size);
#endif /* doxygen skip internal*/
diff --git a/ndb/src/mgmsrv/Services.cpp b/ndb/src/mgmsrv/Services.cpp
index 95afeba30ac..c8d99d2f2da 100644
--- a/ndb/src/mgmsrv/Services.cpp
+++ b/ndb/src/mgmsrv/Services.cpp
@@ -1337,7 +1337,7 @@ Ndb_mgmd_event_service::log(int eventType, const Uint32* theData, NodeId nodeId)
if (EventLoggerBase::event_lookup(eventType,cat,threshold,severity,textF))
DBUG_VOID_RETURN;
- char m_text[256];
+ char m_text[512];
EventLogger::getText(m_text, sizeof(m_text),
textF, theData, nodeId);
@@ -1356,8 +1356,11 @@ Ndb_mgmd_event_service::log(int eventType, const Uint32* theData, NodeId nodeId)
if(strcmp(ndb_logevent_body[i].token,"error") == 0)
{
int m_text_len= strlen(m_text);
- snprintf(m_text+m_text_len, 4 , " - ");
- ndb_error_string(theData[3], m_text+(m_text_len+3), sizeof(m_text)-m_text_len-3);
+ if(sizeof(m_text)-m_text_len-3 > 0)
+ {
+ BaseString::snprintf(m_text+m_text_len, 4 , " - ");
+ ndb_error_string(val, m_text+(m_text_len+3), sizeof(m_text)-m_text_len-3);
+ }
}
}
diff --git a/ndb/src/ndbapi/ndberror.c b/ndb/src/ndbapi/ndberror.c
index 6173292261d..247fdfe65c9 100644
--- a/ndb/src/ndbapi/ndberror.c
+++ b/ndb/src/ndbapi/ndberror.c
@@ -680,11 +680,14 @@ const char *ndberror_classification_message(ndberror_classification classificati
return empty_string;
}
-int ndb_error_string(int err_no, char *str, unsigned int size)
+int ndb_error_string(int err_no, char *str, int size)
{
ndberror_struct error;
- unsigned int len;
+ int len;
+ assert(size > 1);
+ if(size <= 1)
+ return 0;
error.code = err_no;
ndberror_update(&error);