patch 8.2.2887: crash when passing null string to fullcommand()

Problem:    Crash when passing null string to fullcommand().
Solution:   Check for NULL pointer. (closes #8256)
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 2738f4f..b52629e 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -3791,12 +3791,15 @@
     char_u   *name = argvars[0].vval.v_string;
     char_u   *p;
 
-    while (name[0] != NUL && name[0] == ':')
+    rettv->v_type = VAR_STRING;
+    rettv->vval.v_string = NULL;
+    if (name == NULL)
+	return;
+
+    while (*name != NUL && *name == ':')
 	name++;
     name = skip_range(name, TRUE, NULL);
 
-    rettv->v_type = VAR_STRING;
-
     ea.cmd = (*name == '2' || *name == '3') ? name + 1 : name;
     ea.cmdidx = (cmdidx_T)0;
     p = find_ex_command(&ea, NULL, NULL, NULL);
diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim
index d167d4c..c3a638b 100644
--- a/src/testdir/test_cmdline.vim
+++ b/src/testdir/test_cmdline.vim
@@ -475,6 +475,7 @@
   for [in, want] in items(tests)
     call assert_equal(want, fullcommand(in))
   endfor
+  call assert_equal('', fullcommand(test_null_string()))
 
   call assert_equal('syntax', 'syn'->fullcommand())
 endfunc
diff --git a/src/version.c b/src/version.c
index 4eced11..a6ab4cf 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2887,
+/**/
     2886,
 /**/
     2885,