D-Bus server: fix memory leak in case of failed restart
Found via Klocwork. Hardly relevant in practice.
This commit is contained in:
parent
1bd0d59703
commit
99427fbae7
|
@ -25,6 +25,8 @@
|
|||
|
||||
#include <errno.h>
|
||||
|
||||
#include <boost/scoped_array.hpp>
|
||||
|
||||
#include <syncevo/LogRedirect.h>
|
||||
|
||||
#include <syncevo/declarations.h>
|
||||
|
@ -67,10 +69,10 @@ public:
|
|||
|
||||
void restart()
|
||||
{
|
||||
const char **argv = createArray(m_argv);
|
||||
const char **env = createArray(m_env);
|
||||
boost::scoped_array<const char *> argv(createArray(m_argv));
|
||||
boost::scoped_array<const char *> env(createArray(m_env));
|
||||
LogRedirect::reset();
|
||||
if (execve(argv[0], (char *const *)argv, (char *const *)env)) {
|
||||
if (execve(argv[0], (char *const *)argv.get(), (char *const *)env.get())) {
|
||||
SE_THROW(StringPrintf("restarting syncevo-dbus-server failed: %s", strerror(errno)));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue