Hey,
On Mon, 2007-02-19 at 14:44 +0000, Richard W.M. Jones wrote:
We have some functions such as virConnectGetType which are defined to
return statically allocated strings:
/**
* virConnectGetType:
* @conn: pointer to the hypervisor connection
*
* Get the name of the Hypervisor software used.
*
* Returns NULL in case of error, a static zero terminated string
otherwise.
*/
const char *
virConnectGetType(virConnectPtr conn)
[...]
This is all well and good in the typical local case, but when working
over a remote connection the string we return is allocated and requires
freeing at some point.
Uggh.
Unfortunately I don't see a good thing to do in
this case except to change the semantics of virConnectGetType, which
arguably breaks ABI compatibility.
Suggestions from anyone?
Okay, suggest:
1) Add a new function with a different name which returns an
allocated string. Mark the old function as deprecated.
2) Retain the old function, and have a list of likely static strings
which you can return if it matches the string you got from the
remote side, and if not return (and leak) an allocated string
Cheers,
Mark.