The API should make it explicit that reusing the provided buffer is optional.