From e53d208ea4ca7c6496c976be6db3383d99f993c3 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Thu, 2 Oct 2014 10:06:29 -0700 Subject: Improve security posture by eliminating non-const data() accessor from Buffer. --- node/Topology.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'node/Topology.cpp') diff --git a/node/Topology.cpp b/node/Topology.cpp index 86c1befb..5f8401dd 100644 --- a/node/Topology.cpp +++ b/node/Topology.cpp @@ -356,7 +356,7 @@ void Topology::_loadPeers() if ((fread(magic,5,1,pd) == 1)&&(!memcmp("ZTPD0",magic,5))) { long rlen = 0; do { - long rlen = (long)fread(buf.data() + buf.size(),1,ZT_PEER_WRITE_BUF_SIZE - buf.size(),pd); + long rlen = (long)fread(const_cast(static_cast(buf.data())) + buf.size(),1,ZT_PEER_WRITE_BUF_SIZE - buf.size(),pd); if (rlen < 0) rlen = 0; buf.setSize(buf.size() + (unsigned int)rlen); unsigned int ptr = 0; @@ -366,10 +366,7 @@ void Topology::_loadPeers() _activePeers[p->address()] = p; saveIdentity(p->identity()); } - if (ptr) { - memmove(buf.data(),buf.data() + ptr,buf.size() - ptr); - buf.setSize(buf.size() - ptr); - } + buf.behead(ptr); } while (rlen > 0); } } catch ( ... ) { -- cgit v1.2.3