If we still keep the buf, would it be better to pass a pointer instead?