From 1fbeefedbc6470f98090d6edc2f99cf2f66e3ba9 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Tue, 10 Sep 2013 13:30:23 -0500 Subject: [PATCH] Fix two use-after-free bugs. --- src/RemoteSerializer.cc | 2 +- src/logging/Manager.cc | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/RemoteSerializer.cc b/src/RemoteSerializer.cc index 8cd34aa8fc..9bbaba3d55 100644 --- a/src/RemoteSerializer.cc +++ b/src/RemoteSerializer.cc @@ -2575,8 +2575,8 @@ bool RemoteSerializer::SendLogCreateWriter(PeerID peer_id, EnumVal* id, EnumVal* error: if ( c ) { - delete c; delete [] c->data; + delete c; } FatalError(io->Error()); diff --git a/src/logging/Manager.cc b/src/logging/Manager.cc index 3e03d1d27a..79e23fb63f 100644 --- a/src/logging/Manager.cc +++ b/src/logging/Manager.cc @@ -402,10 +402,11 @@ bool Manager::RemoveStream(EnumVal* id) } stream->writers.clear(); + string sname(stream->name); delete stream; streams[idx] = 0; - DBG_LOG(DBG_LOGGING, "Removed logging stream '%s'", stream->name.c_str()); + DBG_LOG(DBG_LOGGING, "Removed logging stream '%s'", sname.c_str()); return true; }