From 050c6cc4b0b945a9eced3a1a3770aef7cec9f81f Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Sat, 6 Feb 2016 22:06:43 +0100 Subject: [PATCH] upnp/Discovery: use AtScopeExit() for exception-safety --- src/lib/upnp/Discovery.cxx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lib/upnp/Discovery.cxx b/src/lib/upnp/Discovery.cxx index f6a3ba122..bcbae6c87 100644 --- a/src/lib/upnp/Discovery.cxx +++ b/src/lib/upnp/Discovery.cxx @@ -23,6 +23,7 @@ #include "ContentDirectoryService.hxx" #include "system/Clock.hxx" #include "Log.hxx" +#include "util/ScopeExit.hxx" #include @@ -127,6 +128,8 @@ UPnPDeviceDirectory::Explore() continue; } + AtScopeExit(buf){ free(buf); }; + // Update or insert the device ContentDirectoryDescriptor d(std::move(tsk->device_id), MonotonicClockS(), tsk->expires); @@ -134,7 +137,6 @@ UPnPDeviceDirectory::Explore() { Error error2; bool success = d.Parse(tsk->url, buf, error2); - free(buf); if (!success) { delete tsk; LogError(error2);