patch 8.1.1897: may free memory twice when out of memory

Problem:    May free memory twice when out of memory.
Solution:   Check that backslash_halve_save() returns a different pointer.
            (Dominique Pelle, closes #4847)
diff --git a/src/misc1.c b/src/misc1.c
index 4884f6c..5f0a7b6 100644
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -4086,7 +4086,9 @@
 		addfile(&ga, t, flags | EW_DIR | EW_FILE);
 	    else
 		addfile(&ga, t, flags);
-	    vim_free(t);
+
+	    if (t != p)
+		vim_free(t);
 	}
 
 #if defined(FEAT_SEARCHPATH)