diff --git a/racket/src/foreign/foreign.c b/racket/src/foreign/foreign.c index 7260597b7d..2a446785c6 100644 --- a/racket/src/foreign/foreign.c +++ b/racket/src/foreign/foreign.c @@ -3929,7 +3929,7 @@ static Scheme_Object *foreign_ffi_callback(int argc, Scheme_Object *argv[]) `free_cl_cif_queue_args' to clean up this extra level. */ GC_CAN_IGNORE void **tmp, *cr; if (constant_reply) { - cr = malloc(constant_reply_size); + cr = malloc(constant_reply_size ? constant_reply_size : 1); memcpy(cr, constant_reply, constant_reply_size); constant_reply = cr; } diff --git a/racket/src/foreign/foreign.rktc b/racket/src/foreign/foreign.rktc index 457fd4985c..da8074964d 100755 --- a/racket/src/foreign/foreign.rktc +++ b/racket/src/foreign/foreign.rktc @@ -3127,7 +3127,7 @@ static void free_cl_cif_queue_args(void *ignored, void *p) `free_cl_cif_queue_args' to clean up this extra level. */ GC_CAN_IGNORE void **tmp, *cr; if (constant_reply) { - cr = malloc(constant_reply_size); + cr = malloc(constant_reply_size ? constant_reply_size : 1); memcpy(cr, constant_reply, constant_reply_size); constant_reply = cr; }