NULL is OK, both for passing and for returning.
Parameter for input. Default is transfer none.
The data is owned by the callee, which is responsible of freeing it.