Mercurial > vim
comparison src/typval.c @ 31525:f7c82a85e88a v9.0.1095
patch 9.0.1095: using freed memory when declaration fails
Commit: https://github.com/vim/vim/commit/6ef5471afa69a654888bc285a51a6035405d33a0
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Dec 25 19:31:36 2022 +0000
patch 9.0.1095: using freed memory when declaration fails
Problem: Using freed memory when declaration fails. (Yegappan Lakshmanan)
Solution: After unreferencing an object set the reference to NULL.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 25 Dec 2022 20:45:04 +0100 |
parents | 60b1d266548d |
children | 9b13b3a63bc0 |
comparison
equal
deleted
inserted
replaced
31524:1996a311ac70 | 31525:f7c82a85e88a |
---|---|
160 case VAR_INSTR: | 160 case VAR_INSTR: |
161 VIM_CLEAR(varp->vval.v_instr); | 161 VIM_CLEAR(varp->vval.v_instr); |
162 break; | 162 break; |
163 case VAR_CLASS: | 163 case VAR_CLASS: |
164 class_unref(varp->vval.v_class); | 164 class_unref(varp->vval.v_class); |
165 varp->vval.v_class = NULL; | |
165 break; | 166 break; |
166 case VAR_OBJECT: | 167 case VAR_OBJECT: |
167 object_unref(varp->vval.v_object); | 168 object_unref(varp->vval.v_object); |
169 varp->vval.v_object = NULL; | |
168 break; | 170 break; |
169 case VAR_UNKNOWN: | 171 case VAR_UNKNOWN: |
170 case VAR_ANY: | 172 case VAR_ANY: |
171 case VAR_VOID: | 173 case VAR_VOID: |
172 break; | 174 break; |