Not an error if no hook found in the registry.
authorIain Patterson <me@iain.cx>
Tue, 1 Mar 2016 10:22:28 +0000 (10:22 +0000)
committerIain Patterson <me@iain.cx>
Tue, 1 Mar 2016 10:25:55 +0000 (10:25 +0000)
Hooks are optional so we shouldn't log an error if one wasn't found.

Thanks Mathias Breiner.

README.txt
registry.cpp

index 6fb7d9a..a95ed94 100644 (file)
@@ -880,7 +880,8 @@ Thanks to Gerald Haider for noticing that installing a service with NSSM in a
 path containing spaces was technically a security vulnerability.\r
 Thanks to Scott Ware for reporting a crash saving the environment on XP 32-bit.\r
 Thanks to Stefan and Michael Scherer for reporting a bug writing the event messages source.\r
-Thanks to Paul Baxter and Mathias Breiner for help with Visual Studio 2015.\r
+Thanks to Paul Baxter for help with Visual Studio 2015.\r
+Thanks to Mathias Breiner for help with Visual Studio and some registry fixes.\r
 \r
 Licence\r
 -------\r
index e3817a4..86eaaf5 100644 (file)
@@ -822,8 +822,15 @@ int get_hook(const TCHAR *service_name, const TCHAR *hook_event, const TCHAR *ho
     log_event(EVENTLOG_ERROR_TYPE, NSSM_EVENT_OUT_OF_MEMORY, _T("hook registry"), _T("get_hook()"), 0);\r
     return 1;\r
   }\r
-  HKEY key = open_registry(service_name, registry, KEY_READ, false);\r
-  if (! key) return 1;\r
+  HKEY key;\r
+  long error = open_registry(service_name, registry, KEY_READ, &key, false);\r
+  if (! key) {\r
+    if (error == ERROR_FILE_NOT_FOUND) {\r
+      ZeroMemory(buffer, buflen);\r
+      return 0;\r
+    }\r
+    return 1;\r
+  }\r
 \r
   int ret = expand_parameter(key, (TCHAR *) hook_action, buffer, buflen, true, false);\r
 \r