patch 8.1.2105: MS-Windows: system() may crash

Problem:    MS-Windows: system() may crash.
Solution:   Do not use "itmp" when it is NULL. (Yasuhiro Matsumoto,
            closes #5005)
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index 9d58ab4..85e5be0 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -1778,28 +1778,30 @@
     }
     else
     {
-	char_u	*p;
+	STRCPY(buf, cmd);
+	if (itmp != NULL)
+	{
+	    char_u	*p;
 
-	/*
-	 * If there is a pipe, we have to put the '<' in front of it.
-	 * Don't do this when 'shellquote' is not empty, otherwise the
-	 * redirection would be inside the quotes.
-	 */
-	if (*p_shq == NUL)
-	{
-	    p = find_pipe(buf);
-	    if (p != NULL)
-		*p = NUL;
-	}
-	STRCAT(buf, " <");	/* " < " causes problems on Amiga */
-	STRCAT(buf, itmp);
-	if (*p_shq == NUL)
-	{
-	    p = find_pipe(cmd);
-	    if (p != NULL)
+	    // If there is a pipe, we have to put the '<' in front of it.
+	    // Don't do this when 'shellquote' is not empty, otherwise the
+	    // redirection would be inside the quotes.
+	    if (*p_shq == NUL)
 	    {
-		STRCAT(buf, " ");   /* insert a space before the '|' for DOS */
-		STRCAT(buf, p);
+		p = find_pipe(buf);
+		if (p != NULL)
+		    *p = NUL;
+	    }
+	    STRCAT(buf, " <");	// " < " causes problems on Amiga
+	    STRCAT(buf, itmp);
+	    if (*p_shq == NUL)
+	    {
+		p = find_pipe(cmd);
+		if (p != NULL)
+		{
+		    STRCAT(buf, " ");  // insert a space before the '|' for DOS
+		    STRCAT(buf, p);
+		}
 	    }
 	}
     }