mirror of https://github.com/arendst/Tasmota.git
Berry fix possible memory corruption
This commit is contained in:
parent
2e87681612
commit
9fcd7c3ae4
|
@ -882,28 +882,34 @@ newframe: /* a new call frame */
|
|||
binstance *obj = var_toobj(a);
|
||||
bstring *attr = var_tostr(b);
|
||||
if (!be_instance_setmember(vm, obj, attr, c)) {
|
||||
reg = vm->reg;
|
||||
vm_error(vm, "attribute_error",
|
||||
"class '%s' cannot assign to attribute '%s'",
|
||||
str(be_instance_name(obj)), str(attr));
|
||||
}
|
||||
reg = vm->reg;
|
||||
dispatch();
|
||||
}
|
||||
if (var_isclass(a) && var_isstr(b)) {
|
||||
bclass *obj = var_toobj(a);
|
||||
bstring *attr = var_tostr(b);
|
||||
if (!be_class_setmember(vm, obj, attr, c)) {
|
||||
reg = vm->reg;
|
||||
vm_error(vm, "attribute_error",
|
||||
"class '%s' cannot assign to static attribute '%s'",
|
||||
str(be_class_name(obj)), str(attr));
|
||||
}
|
||||
reg = vm->reg;
|
||||
dispatch();
|
||||
}
|
||||
if (var_ismodule(a) && var_isstr(b)) {
|
||||
bmodule *obj = var_toobj(a);
|
||||
bstring *attr = var_tostr(b);
|
||||
if (be_module_setmember(vm, obj, attr, c)) {
|
||||
reg = vm->reg;
|
||||
dispatch();
|
||||
} else {
|
||||
reg = vm->reg;
|
||||
// fall through exception below
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue