patch 8.1.2406: leaking memory in test_paste and test_registers

Problem:    Leaking memory in test_paste and test_registers.
Solution:   Free the old title.  Don't copy expr_line.
diff --git a/src/os_unix.c b/src/os_unix.c
index 90c5aed..7e78209 100644
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -1963,6 +1963,10 @@
 	    retval = TRUE;
 	    if (!test_only)
 	    {
+		if (get_title)
+		    vim_free(oldtitle);
+		else
+		    vim_free(oldicon);
 		if (text_prop.encoding == XA_STRING && !has_mbyte)
 		{
 		    if (get_title)
diff --git a/src/register.c b/src/register.c
index a948beb..24e4b99 100644
--- a/src/register.c
+++ b/src/register.c
@@ -2872,9 +2872,9 @@
 	p = vim_strnsave(str, (int)len);
 	if (p == NULL)
 	    return;
-	if (must_append)
+	if (must_append && expr_line != NULL)
 	{
-	    s = concat_str(get_expr_line_src(), p);
+	    s = concat_str(expr_line, p);
 	    vim_free(p);
 	    p = s;
 	}
diff --git a/src/term.c b/src/term.c
index 57384f4..b0ab7c6 100644
--- a/src/term.c
+++ b/src/term.c
@@ -2106,6 +2106,8 @@
 {
     int	    i;
 
+    // Note: Valgrind may report a leak here, because the library keeps one
+    // buffer around that we can't ever free.
     i = TGETENT(tbuf, term);
     if (i < 0		    // -1 is always an error
 # ifdef TGETENT_ZERO_ERR
diff --git a/src/version.c b/src/version.c
index 89896e5..c03c3c0 100644
--- a/src/version.c
+++ b/src/version.c
@@ -743,6 +743,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2406,
+/**/
     2405,
 /**/
     2404,