You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@drill.apache.org by la...@apache.org on 2017/07/12 17:58:17 UTC
drill git commit: DRILL-5668: Fix C++ connector crash on error
Repository: drill
Updated Branches:
refs/heads/master 35a1ec667 -> 35d07c3bd
DRILL-5668: Fix C++ connector crash on error
Fix C++ connector crash when receiving error messages exceeding
a given size.
closes #873
Project: http://git-wip-us.apache.org/repos/asf/drill/repo
Commit: http://git-wip-us.apache.org/repos/asf/drill/commit/35d07c3b
Tree: http://git-wip-us.apache.org/repos/asf/drill/tree/35d07c3b
Diff: http://git-wip-us.apache.org/repos/asf/drill/diff/35d07c3b
Branch: refs/heads/master
Commit: 35d07c3bd84ee8e8a4019a18888461e130c45d42
Parents: 35a1ec6
Author: Laurent Goujon <la...@dremio.com>
Authored: Tue Jul 11 22:25:44 2017 -0700
Committer: Laurent Goujon <la...@dremio.com>
Committed: Wed Jul 12 10:57:27 2017 -0700
----------------------------------------------------------------------
contrib/native/client/src/clientlib/drillClientImpl.cpp | 4 ++--
contrib/native/client/src/clientlib/errmsgs.cpp | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/drill/blob/35d07c3b/contrib/native/client/src/clientlib/drillClientImpl.cpp
----------------------------------------------------------------------
diff --git a/contrib/native/client/src/clientlib/drillClientImpl.cpp b/contrib/native/client/src/clientlib/drillClientImpl.cpp
index 7015b5a..3f9f958 100644
--- a/contrib/native/client/src/clientlib/drillClientImpl.cpp
+++ b/contrib/native/client/src/clientlib/drillClientImpl.cpp
@@ -2377,7 +2377,7 @@ status_t DrillClientQueryResult::setupColumnDefs(exec::shared::QueryData* pQuery
for(std::vector<Drill::FieldMetadata*>::iterator it = this->m_columnDefs->begin(); it != this->m_columnDefs->end(); ++it){
// the key is the field_name + type
char type[256];
- sprintf(type, ":%d:%d",(*it)->getMinorType(), (*it)->getDataMode() );
+ snprintf(type, sizeof(type), ":%d:%d",(*it)->getMinorType(), (*it)->getDataMode() );
std::string k= (*it)->getName()+type;
oldSchema[k]=*it;
delete *it;
@@ -2394,7 +2394,7 @@ status_t DrillClientQueryResult::setupColumnDefs(exec::shared::QueryData* pQuery
//Look for changes in the vector and trigger a Schema change event if necessary.
//If vectors are different, then call the schema change listener.
char type[256];
- sprintf(type, ":%d:%d",fmd->getMinorType(), fmd->getDataMode() );
+ snprintf(type, sizeof(type), ":%d:%d",fmd->getMinorType(), fmd->getDataMode() );
std::string k= fmd->getName()+type;
std::map<std::string, Drill::FieldMetadata*>::iterator iter=oldSchema.find(k);
if(iter==oldSchema.end()){
http://git-wip-us.apache.org/repos/asf/drill/blob/35d07c3b/contrib/native/client/src/clientlib/errmsgs.cpp
----------------------------------------------------------------------
diff --git a/contrib/native/client/src/clientlib/errmsgs.cpp b/contrib/native/client/src/clientlib/errmsgs.cpp
index 56510ec..15d2256 100644
--- a/contrib/native/client/src/clientlib/errmsgs.cpp
+++ b/contrib/native/client/src/clientlib/errmsgs.cpp
@@ -77,7 +77,7 @@ std::string getMessage(uint32_t msgId, ...){
assert((ERR_NONE <= msgId) && (msgId < ERR_QRY_MAX));
va_list args;
va_start (args, msgId);
- vsprintf (str, errorMessages[msgId-DRILL_ERR_START].msgFormatStr, args);
+ vsnprintf (str, sizeof(str), errorMessages[msgId-DRILL_ERR_START].msgFormatStr, args);
va_end (args);
s=std::string("[")+boost::lexical_cast<std::string>(msgId)+std::string("]")+str;
return s;