patch 8.2.3396: when libcall() fails invalid pointer may be used

Problem:    When libcall() fails invalid pointer may be used.
Solution:   Initialize the string to NULL. (Yasuhiro Matsumoto, closes #8829)
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 287ca3c..fd385fe 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -6689,9 +6689,14 @@
 	if (argvars[2].v_type == VAR_STRING)
 	    string_in = argvars[2].vval.v_string;
 	if (type == VAR_NUMBER)
+	{
 	    string_result = NULL;
+	}
 	else
+	{
+	    rettv->vval.v_string = NULL;
 	    string_result = &rettv->vval.v_string;
+	}
 	if (mch_libcall(argvars[0].vval.v_string,
 			     argvars[1].vval.v_string,
 			     string_in,
diff --git a/src/version.c b/src/version.c
index 435affe..3708e8f 100644
--- a/src/version.c
+++ b/src/version.c
@@ -756,6 +756,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3396,
+/**/
     3395,
 /**/
     3394,