summaryrefslogtreecommitdiff
path: root/controller
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2015-07-20 14:31:33 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2015-07-20 14:31:33 -0700
commitfb4c3dd8d446efc2ca3324da2d8cefda88e402b0 (patch)
tree65687928b7f815ab1546d294c79dbb7329974a18 /controller
parent1ffd67e0148160d87866bb7f25bc5513a12b67d2 (diff)
downloadinfinitytier-fb4c3dd8d446efc2ca3324da2d8cefda88e402b0.tar.gz
infinitytier-fb4c3dd8d446efc2ca3324da2d8cefda88e402b0.zip
Fix string overwrite bug.
Diffstat (limited to 'controller')
-rw-r--r--controller/SqliteNetworkController.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/controller/SqliteNetworkController.cpp b/controller/SqliteNetworkController.cpp
index b9c6d269..537548c4 100644
--- a/controller/SqliteNetworkController.cpp
+++ b/controller/SqliteNetworkController.cpp
@@ -925,8 +925,9 @@ unsigned int SqliteNetworkController::handleControlPlaneHttpPOST(
for(std::map<Address,InetAddress>::iterator rl(nodeIdToPhyAddress.begin());rl!=nodeIdToPhyAddress.end();++rl) {
sqlite3_reset(_sCreateRelay);
sqlite3_bind_text(_sCreateRelay,1,nwids,16,SQLITE_STATIC);
- sqlite3_bind_text(_sCreateRelay,2,rl->first.toString().c_str(),-1,SQLITE_STATIC);
- sqlite3_bind_text(_sCreateRelay,3,rl->second.toString().c_str(),-1,SQLITE_STATIC);
+ std::string a(rl->first.toString()),b(rl->second.toString()); // don't destroy strings until sqlite3_step()
+ sqlite3_bind_text(_sCreateRelay,2,a.c_str(),-1,SQLITE_STATIC);
+ sqlite3_bind_text(_sCreateRelay,3,b.c_str(),-1,SQLITE_STATIC);
sqlite3_step(_sCreateRelay);
}
}