Nikolay Sivov : sc: Fix service handle leak on error path (Coverity).

Alexandre Julliard julliard at wine.codeweavers.com
Tue Nov 24 10:41:08 CST 2015


Module: wine
Branch: master
Commit: 0a3e54480a509d5d323a31440af67a63a990d80e
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=0a3e54480a509d5d323a31440af67a63a990d80e

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Sun Nov 22 17:48:04 2015 +0300

sc: Fix service handle leak on error path (Coverity).

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 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());




More information about the wine-cvs mailing list