only NULL-terminate the string in GetEnvironmentVariableW if the buffer size is greater than 0. Thanks to Joseph Galbraith for the hint
Modified: trunk/reactos/lib/kernel32/misc/env.c

Modified: trunk/reactos/lib/kernel32/misc/env.c
--- trunk/reactos/lib/kernel32/misc/env.c	2005-07-13 15:46:59 UTC (rev 16554)
+++ trunk/reactos/lib/kernel32/misc/env.c	2005-07-13 16:36:24 UTC (rev 16555)
@@ -158,9 +158,12 @@
 		}
 	}
 	
-	/* make sure the string is NULL-terminated! RtlQueryEnvironmentVariable_U
-           only terminates it if MaximumLength < Length */
-	VarValue.Buffer[VarValue.Length / sizeof(WCHAR)] = L'\0';
+        if (nSize != 0)
+        {
+            /* make sure the string is NULL-terminated! RtlQueryEnvironmentVariable_U
+               only terminates it if MaximumLength < Length */
+	    VarValue.Buffer[VarValue.Length / sizeof(WCHAR)] = L'\0';
+	}
 
 	return (VarValue.Length / sizeof(WCHAR));
 }