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.
diff --git a/src/typval.c b/src/typval.c
index 98915cc..6eae02b 100644
--- a/src/typval.c
+++ b/src/typval.c
@@ -162,9 +162,11 @@
break;
case VAR_CLASS:
class_unref(varp->vval.v_class);
+ varp->vval.v_class = NULL;
break;
case VAR_OBJECT:
object_unref(varp->vval.v_object);
+ varp->vval.v_object = NULL;
break;
case VAR_UNKNOWN:
case VAR_ANY: