From 5637e16c2c56225bd92904498de691760535ac2a Mon Sep 17 00:00:00 2001 From: Michael Wallner Date: Tue, 4 Dec 2018 11:25:10 +0100 Subject: [PATCH] fix reading beyond actual size --- src/types/let_exp.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/types/let_exp.c b/src/types/let_exp.c index 382fd62..4ce32a2 100644 --- a/src/types/let_exp.c +++ b/src/types/let_exp.c @@ -247,9 +247,11 @@ void *psi_let_exp_exec(struct psi_let_exp *val, struct psi_decl_arg *darg, struct psi_impl *impl = psi_call_frame_get_impl(frame); struct psi_let_stmt *let_temp = psi_impl_get_let(impl, val->data.var); struct psi_call_frame_symbol *temp_arg; + impl_val *src; temp_arg = psi_call_frame_fetch_symbol(frame, let_temp->exp->var); - frame_sym->temp_val = *deref_impl_val(temp_arg->ptr, val->data.var); + src = deref_impl_val(temp_arg->ptr, val->data.var); + memcpy(&frame_sym->temp_val, src, psi_decl_var_get_size(let_temp->exp->var)); } break; -- 2.30.2