aboutsummaryrefslogtreecommitdiff
path: root/src/zenutil/service.cpp
diff options
context:
space:
mode:
authorLiam Mitchell <[email protected]>2025-03-25 18:02:11 -0700
committerLiam Mitchell <[email protected]>2025-03-25 18:02:11 -0700
commit6362d82d2476d740968665e0b4f10750236d201e (patch)
treee7e281e84c55828d8746ab4aabdc92bdd976cf99 /src/zenutil/service.cpp
parentSpecify restart options for service manager, to avoid use of manual restart l... (diff)
downloadzen-6362d82d2476d740968665e0b4f10750236d201e.tar.xz
zen-6362d82d2476d740968665e0b4f10750236d201e.zip
Avoid leaking service handle in Windows service installation
Diffstat (limited to 'src/zenutil/service.cpp')
-rw-r--r--src/zenutil/service.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/zenutil/service.cpp b/src/zenutil/service.cpp
index e1c5e17fa..760e52baf 100644
--- a/src/zenutil/service.cpp
+++ b/src/zenutil/service.cpp
@@ -436,6 +436,8 @@ InstallService(std::string_view ServiceName, const ServiceSpec& Spec)
return MakeErrorCodeFromLastError();
}
+ auto _ = MakeGuard([schService]() { CloseServiceHandle(schService); });
+
if (!Spec.Description.empty())
{
ExtendableWideStringBuilder<128> DescriptionBuilder;
@@ -468,8 +470,6 @@ InstallService(std::string_view ServiceName, const ServiceSpec& Spec)
return MakeErrorCodeFromLastError();
}
- CloseServiceHandle(schService);
-
return {};
}