From b5353cc4c726e60f05df3655859c096e03458e5e Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Sun, 28 May 2017 06:29:50 +0000 Subject: ffi: bugfix: null out return value to padded size. * ffi.c (ffi_closure_dispatch_safe): In the abort case when we put zeros in the return value, we must overwrite the entire ffi_arg cell, in adherence with the special return value quirk of libffi. --- ffi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ffi.c b/ffi.c index f2154e13..e6d22814 100644 --- a/ffi.c +++ b/ffi.c @@ -2800,7 +2800,7 @@ static void ffi_closure_dispatch_safe(ffi_cif *cif, void *cret, if (rtft->release != 0 && retval != nao) rtft->release(rtft, retval, convert(mem_t *, cret)); if (!tfcl->abort_retval) - memset(cret, 0, rtft->size); + memset(cret, 0, pad_retval(rtft->size)); else ifbe2(rtft->rput, rtft->put)(rtft, tfcl->abort_retval, convert(mem_t *, cret), self); -- cgit v1.2.3