- if (service->env_extra) {\r
- /* Append these to any other environment variables set. */\r
- if (service->env) {\r
- /* Append extra variables to configured variables. */\r
- unsigned long envlen = service->envlen + service->env_extralen - 1;\r
- TCHAR *env = (TCHAR *) HeapAlloc(GetProcessHeap(), 0, envlen);\r
- if (env) {\r
- memmove(env, service->env, service->envlen - sizeof(TCHAR));\r
- /* envlen is in bytes. */\r
- memmove(env + (service->envlen / sizeof(TCHAR)) - 1, service->env_extra, service->env_extralen);\r
-\r
- HeapFree(GetProcessHeap(), 0, service->env);\r
- service->env = env;\r
- service->envlen = envlen;\r
+ if (si) {\r
+ if (service->env_extra) {\r
+ /* Append these to any other environment variables set. */\r
+ if (service->env) {\r
+ /* Append extra variables to configured variables. */\r
+ unsigned long envlen = service->envlen + service->env_extralen - 1;\r
+ TCHAR *env = (TCHAR *) HeapAlloc(GetProcessHeap(), 0, envlen);\r
+ if (env) {\r
+ memmove(env, service->env, service->envlen - sizeof(TCHAR));\r
+ /* envlen is in bytes. */\r
+ memmove(env + (service->envlen / sizeof(TCHAR)) - 1, service->env_extra, service->env_extralen);\r
+\r
+ HeapFree(GetProcessHeap(), 0, service->env);\r
+ service->env = env;\r
+ service->envlen = envlen;\r
+ }\r
+ else log_event(EVENTLOG_ERROR_TYPE, NSSM_EVENT_OUT_OF_MEMORY, _T("environment"), _T("get_parameters()"), 0);\r