HeapFree() before GetLastError().
authorIain Patterson <me@iain.cx>
Sun, 2 Mar 2014 12:28:46 +0000 (12:28 +0000)
committerIain Patterson <me@iain.cx>
Sun, 2 Mar 2014 18:24:12 +0000 (18:24 +0000)
Successful HeapFree() will set the last error to 0 so the GetLastError()
call will not be meaningful.

registry.cpp

index 2b111c3..6c1567c 100644 (file)
@@ -214,10 +214,10 @@ int get_environment(TCHAR *service_name, HKEY key, TCHAR *value, TCHAR **env, un
   /* Actually get the strings */\r
   ret = RegQueryValueEx(key, value, 0, &type, (unsigned char *) *env, envlen);\r
   if (ret != ERROR_SUCCESS) {\r
+    log_event(EVENTLOG_ERROR_TYPE, NSSM_EVENT_QUERYVALUE_FAILED, value, error_string(GetLastError()), 0);\r
     HeapFree(GetProcessHeap(), 0, *env);\r
     *env = 0;\r
     *envlen = 0;\r
-    log_event(EVENTLOG_ERROR_TYPE, NSSM_EVENT_QUERYVALUE_FAILED, value, error_string(GetLastError()), 0);\r
     return 4;\r
   }\r
 \r