patch 8.1.0589: compilation error in gvimext.cpp

Problem:    Compilation error in gvimext.cpp.
Solution:   Return a value.  Also fix using uninitialized variable.
diff --git a/src/GvimExt/gvimext.cpp b/src/GvimExt/gvimext.cpp
index 62d925b..30b2ddd 100644
--- a/src/GvimExt/gvimext.cpp
+++ b/src/GvimExt/gvimext.cpp
@@ -1025,7 +1025,7 @@
     cmdlen = BUFSIZE;
     cmdStrW  = (wchar_t *) malloc(cmdlen * sizeof(wchar_t));
     if (cmdStrW == NULL)
-	return;
+	return E_FAIL;
     getGvimInvocationW(cmdStrW);
 
     if (useDiff)
@@ -1043,7 +1043,10 @@
 	    cmdlen = len + BUFSIZE;
 	    wchar_t *cmdStrW_new = (wchar_t *)realloc(cmdStrW, cmdlen * sizeof(wchar_t));
 	    if (cmdStrW_new == NULL)
-		goto theend;
+	    {
+		free(cmdStrW);
+		return E_FAIL;
+	    }
 	    cmdStrW = cmdStrW_new;
 	}
 	wcscat(cmdStrW, L" \"");