Mercurial > vim
comparison src/eval.c @ 10910:8bff367672a4 v8.0.0344
patch 8.0.0344: unlet command leaks memory
commit https://github.com/vim/vim/commit/49439c4cdf7d2822255f292adda4226656fe144d
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Feb 20 23:07:05 2017 +0100
patch 8.0.0344: unlet command leaks memory
Problem: Unlet command leaks memory. (Nikolai Pavlov)
Solution: Free the memory on error. (closes https://github.com/vim/vim/issues/1497)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Mon, 20 Feb 2017 23:15:04 +0100 |
parents | 6b6abffbdf59 |
children | fd1760f8c215 |
comparison
equal
deleted
inserted
replaced
10909:e155b0b3d532 | 10910:8bff367672a4 |
---|---|
2077 p = NULL; | 2077 p = NULL; |
2078 break; | 2078 break; |
2079 } | 2079 } |
2080 /* existing variable, need to check if it can be changed */ | 2080 /* existing variable, need to check if it can be changed */ |
2081 else if (var_check_ro(lp->ll_di->di_flags, name, FALSE)) | 2081 else if (var_check_ro(lp->ll_di->di_flags, name, FALSE)) |
2082 { | |
2083 clear_tv(&var1); | |
2082 return NULL; | 2084 return NULL; |
2085 } | |
2083 | 2086 |
2084 if (len == -1) | 2087 if (len == -1) |
2085 clear_tv(&var1); | 2088 clear_tv(&var1); |
2086 lp->ll_tv = &lp->ll_di->di_tv; | 2089 lp->ll_tv = &lp->ll_di->di_tv; |
2087 } | 2090 } |