Fix incorrect GetLongPathName usage exposed by Eric's filename
patches.

diff --git a/dlls/kernel/process.c b/dlls/kernel/process.c
index ad71131..a21ef50 100644
--- a/dlls/kernel/process.c
+++ b/dlls/kernel/process.c
@@ -1140,10 +1140,11 @@
     NTSTATUS status;
     WCHAR buffer[MAX_PATH];
 
-    if (GetLongPathNameW( filename, buffer, MAX_PATH ))
-        RtlInitUnicodeString( &image_str, buffer );
-    else
-        RtlInitUnicodeString( &image_str, filename );
+    if(!GetLongPathNameW( filename, buffer, MAX_PATH ))
+        lstrcpynW( buffer, filename, MAX_PATH );
+    if(!GetFullPathNameW( buffer, MAX_PATH, buffer, NULL ))
+        lstrcpynW( buffer, filename, MAX_PATH );
+    RtlInitUnicodeString( &image_str, buffer );
 
     RtlInitUnicodeString( &cmdline_str, cmdline );
     if (startup->lpDesktop) RtlInitUnicodeString( &desktop, startup->lpDesktop );