summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Milkie <milkie@10gen.com>2014-09-26 09:37:25 -0400
committerEric Milkie <milkie@10gen.com>2014-09-26 11:27:06 -0400
commitbbbc331ac4e263171c4fda427a2649ed69732175 (patch)
tree58ca17d46d83c096ea091c027ce66ec3466b83c0
parente86e08deff7293b5778fad27df9031c013595b12 (diff)
downloadmongo-bbbc331ac4e263171c4fda427a2649ed69732175.tar.gz
SERVER-15411 fix uninitialized char array in topology coordinator
-rw-r--r--src/mongo/db/repl/topology_coordinator_impl.cpp8
-rw-r--r--src/mongo/db/repl/topology_coordinator_impl.h2
2 files changed, 2 insertions, 8 deletions
diff --git a/src/mongo/db/repl/topology_coordinator_impl.cpp b/src/mongo/db/repl/topology_coordinator_impl.cpp
index b5a90386e1b..dacac0e1610 100644
--- a/src/mongo/db/repl/topology_coordinator_impl.cpp
+++ b/src/mongo/db/repl/topology_coordinator_impl.cpp
@@ -1390,13 +1390,7 @@ namespace {
return;
}
- unsigned sz = s.size();
- if (sz >= 256)
- memcpy(_hbmsg, s.c_str(), 255);
- else {
- _hbmsg[sz] = 0;
- memcpy(_hbmsg, s.c_str(), sz);
- }
+ _hbmsg = s;
if (!s.empty()) {
lastLogged = _hbmsgTime;
LOG(logLevel) << "replSet " << s;
diff --git a/src/mongo/db/repl/topology_coordinator_impl.h b/src/mongo/db/repl/topology_coordinator_impl.h
index 9bcf5820f00..9c7b2c85cb8 100644
--- a/src/mongo/db/repl/topology_coordinator_impl.h
+++ b/src/mongo/db/repl/topology_coordinator_impl.h
@@ -317,7 +317,7 @@ namespace repl {
// "heartbeat message"
// sent in requestHeartbeat respond in field "hbm"
- char _hbmsg[256]; // we change this unlocked, thus not a std::string
+ std::string _hbmsg;
Date_t _hbmsgTime; // when it was logged
void _sethbmsg(const std::string& s, int logLevel = 0);
// heartbeat msg to send to others; descriptive diagnostic info