We need a len param for dest here as well, to make sure that we don't get in trouble if someone calls this with a too small buffer.