On Fri, Jul 30, 2010 at 02:06:02PM +0200, Andrew Beekhof wrote:
No objections.
One minor thing, the if-clause is redundant for the calls to free().
I don't think so. The first one does a free() on the original buffer allocated if the buffer was too small for the API. The second call releases memory being held by the buffer regardless of which path it took. Though, in thinking about it, the call ought to be replaced with a macro that releases the memory and then sets the pointer to NULL to avoid any future change trying to double-release memory.
Presumably ret_length contains the length required not the length returned?
Correct. It's the way the API returns the length needed if the originally allocated buffer is too small.
I'll push this with a macro for the call to free().