summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/dbus/server/restart.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/dbus/server/restart.h b/src/dbus/server/restart.h
index d9c64e1c..00a86333 100644
--- a/src/dbus/server/restart.h
+++ b/src/dbus/server/restart.h
@@ -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)));
}
}