Make malloc of on_stack args buffer conditional

nwc10++ pointed out that this causes a malloc of silly
propportions as the size_t argument to malloc is interpreted
as unsigned.

When fewer than 6 arguments are present, it is never necessary
to allocate a buffer at all.