[PATCH] programs/sc: Fix service handle leak on error path (Coverity)
Nikolay Sivov
nsivov at codeweavers.com
Sun Nov 22 08:48:04 CST 2015
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
programs/sc/sc.c | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/programs/sc/sc.c b/programs/sc/sc.c
index 2cfe91c..0bf5d06 100644
--- a/programs/sc/sc.c
+++ b/programs/sc/sc.c
@@ -285,15 +285,14 @@ int wmain( int argc, const WCHAR *argv[] )
if (service)
{
SERVICE_FAILURE_ACTIONSW sfa;
- if (!parse_failure_params( argc - 3, argv + 3, &sfa ))
+ if (parse_failure_params( argc - 3, argv + 3, &sfa ))
{
- WINE_WARN("failed to parse failure parameters\n");
- CloseServiceHandle( manager );
- return 1;
+ ret = ChangeServiceConfig2W( service, SERVICE_CONFIG_FAILURE_ACTIONS, &sfa );
+ if (!ret) WINE_TRACE("failed to set service failure actions %u\n", GetLastError());
+ HeapFree( GetProcessHeap(), 0, sfa.lpsaActions );
}
- ret = ChangeServiceConfig2W( service, SERVICE_CONFIG_FAILURE_ACTIONS, &sfa );
- if (!ret) WINE_TRACE("failed to set service failure actions %u\n", GetLastError());
- HeapFree( GetProcessHeap(), 0, sfa.lpsaActions );
+ else
+ WINE_WARN("failed to parse failure parameters\n");
CloseServiceHandle( service );
}
else WINE_TRACE("failed to open service %u\n", GetLastError());
--
2.6.2
More information about the wine-patches
mailing list