The return size calculation's of GetEnvironmentVariable string was wrong. Thx to <Bizzy_D> to find out cd %windir% did not work. Now it will
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-10 22:05:48 UTC (rev 16527)
+++ trunk/reactos/lib/kernel32/misc/env.c	2005-07-10 22:12:07 UTC (rev 16528)
@@ -70,7 +70,7 @@
 		SetLastErrorByStatus (Status);
 		if (Status == STATUS_BUFFER_TOO_SMALL)
 		{
-			return VarValueU.Length / sizeof(WCHAR) + 1;
+			return VarValueU.Length / sizeof(WCHAR) + sizeof(WCHAR);
 		}
 		else
 		{
@@ -91,7 +91,7 @@
 	/* free unicode variable name string */
 	RtlFreeUnicodeString (&VarNameU);
 
-	return (VarValueU.Length / sizeof(WCHAR));
+	return (VarValueU.Length / sizeof(WCHAR) + sizeof(WCHAR));
 }
 
 
@@ -125,7 +125,7 @@
 		SetLastErrorByStatus (Status);
 		if (Status == STATUS_BUFFER_TOO_SMALL)
 		{
-			return (VarValue.Length / sizeof(WCHAR)) + 1;
+			return (VarValue.Length / sizeof(WCHAR)) +  sizeof(WCHAR);
 		}
 		else
 		{
@@ -133,7 +133,7 @@
 		}
 	}
 
-	return (VarValue.Length / sizeof(WCHAR));
+	return (VarValue.Length / sizeof(WCHAR) + sizeof(WCHAR));
 }