fix invalid free in code cleanup

master
Daniel Kolesa 2016-09-08 22:04:36 +02:00
parent f3fd6892bc
commit e3310ce74f
2 changed files with 2 additions and 2 deletions

View File

@ -19,7 +19,7 @@ static inline void csv_cleanup(CsValueType tv, T &stor) {
case CsValueType::Code: { case CsValueType::Code: {
ostd::Uint32 *bcode = csv_get<ostd::Uint32 *>(stor); ostd::Uint32 *bcode = csv_get<ostd::Uint32 *>(stor);
if (bcode[-1] == CsCodeStart) { if (bcode[-1] == CsCodeStart) {
delete[] bcode; delete[] &bcode[-1];
} }
break; break;
} }

View File

@ -443,7 +443,7 @@ static inline void cs_call_alias(
CsAliasInternal::compile_code(a, cs) CsAliasInternal::compile_code(a, cs)
); );
bcode_incr(codep); bcode_incr(codep);
runcode(cs, codep+1, (result)); runcode(cs, codep+1, result);
bcode_decr(codep); bcode_decr(codep);
cs.p_callstack = aliaslink.next; cs.p_callstack = aliaslink.next;
cs.identflags = oldflags; cs.identflags = oldflags;