patch 7.4.2083
Problem:    Coverity complains about not restoring a value.
Solution:   Restore the value, although it's not really needed.  Change return
            to jump to cleanup, might leak memory.
diff --git a/src/userfunc.c b/src/userfunc.c
index 9ffafc3..ffbbc2d 100644
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -199,14 +199,17 @@
 		break;
 	    }
 	    if (newargs != NULL && ga_grow(newargs, 1) == FAIL)
-		return FAIL;
+		goto err_ret;
 	    if (newargs != NULL)
 	    {
 		c = *p;
 		*p = NUL;
 		arg = vim_strsave(arg);
 		if (arg == NULL)
+		{
+		    *p = c;
 		    goto err_ret;
+		}
 
 		/* Check for duplicate argument name. */
 		for (i = 0; i < newargs->ga_len; ++i)