From: Bram Moolenaar Date: Sat, 9 Sep 2017 14:25:54 +0000 (+0200) Subject: patch 8.0.1079: memory leak when remote_foreground() fails X-Git-Tag: v8.0.1079 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=09d6c3818d7451a659f4d12a4e974237fe823f7d;p=vim patch 8.0.1079: memory leak when remote_foreground() fails Problem: Memory leak when remote_foreground() fails. Solution: Free the error message. --- diff --git a/src/evalfunc.c b/src/evalfunc.c index a2542e2c5..ea342b4c6 100644 --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -8638,7 +8638,10 @@ remote_common(typval_T *argvars, typval_T *rettv, int expr) # endif { if (r != NULL) + { EMSG(r); /* sending worked but evaluation failed */ + vim_free(r); + } else EMSG2(_("E241: Unable to send to %s"), server_name); return; @@ -8698,6 +8701,8 @@ f_remote_foreground(typval_T *argvars UNUSED, typval_T *rettv UNUSED) argvars[1].v_type = VAR_STRING; argvars[1].vval.v_string = vim_strsave((char_u *)"foreground()"); argvars[2].v_type = VAR_UNKNOWN; + rettv->v_type = VAR_STRING; + rettv->vval.v_string = NULL; remote_common(argvars, rettv, TRUE); vim_free(argvars[1].vval.v_string); # endif diff --git a/src/if_xcmdsrv.c b/src/if_xcmdsrv.c index 4c3c01220..2d87e3050 100644 --- a/src/if_xcmdsrv.c +++ b/src/if_xcmdsrv.c @@ -420,6 +420,7 @@ serverSendToVim( { LookupName(dpy, loosename ? loosename : name, /*DELETE=*/TRUE, NULL); + vim_free(loosename); continue; } } diff --git a/src/version.c b/src/version.c index 4ef0d9ee7..94ba24dbb 100644 --- a/src/version.c +++ b/src/version.c @@ -769,6 +769,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1079, /**/ 1078, /**/