From 85809843468f6040e25dcd5ed10f9b0a2c4e551f Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Wed, 13 Sep 2006 12:56:37 +0200 Subject: [PATCH] msiexec: Ignore failure to create the service if it already exists. --- programs/msiexec/msiexec.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/programs/msiexec/msiexec.c b/programs/msiexec/msiexec.c index d8025bfe205..364d54a537f 100644 --- a/programs/msiexec/msiexec.c +++ b/programs/msiexec/msiexec.c @@ -333,6 +333,7 @@ static DWORD DoRegServer(void) { SC_HANDLE scm, service; CHAR path[MAX_PATH+12]; + DWORD ret = 0; scm = OpenSCManager(NULL, SERVICES_ACTIVE_DATABASE, SC_MANAGER_CREATE_SERVICE); if (!scm) @@ -348,16 +349,15 @@ static DWORD DoRegServer(void) SERVICE_WIN32_SHARE_PROCESS, SERVICE_DEMAND_START, SERVICE_ERROR_NORMAL, path, NULL, NULL, NULL, NULL, NULL); - if (!service) + + if (service) CloseServiceHandle(service); + else if (GetLastError() != ERROR_SERVICE_EXISTS) { fprintf(stderr, "Failed to create MSI service\n"); - CloseServiceHandle(scm); - return 1; + ret = 1; } - - CloseServiceHandle(scm); - CloseServiceHandle(service); - return 0; + CloseServiceHandle(scm); + return ret; } static BOOL process_args_from_reg( LPWSTR ident, int *pargc, WCHAR ***pargv ) -- 2.11.4.GIT