From fb4c3dd8d446efc2ca3324da2d8cefda88e402b0 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Mon, 20 Jul 2015 14:31:33 -0700 Subject: [PATCH] Fix string overwrite bug. --- controller/SqliteNetworkController.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/controller/SqliteNetworkController.cpp b/controller/SqliteNetworkController.cpp index b9c6d269c..537548c4c 100644 --- a/controller/SqliteNetworkController.cpp +++ b/controller/SqliteNetworkController.cpp @@ -925,8 +925,9 @@ unsigned int SqliteNetworkController::handleControlPlaneHttpPOST( for(std::map::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); } }