On Fri, Feb 01, 2013 at 03:48:27PM -0800, Juan Lang wrote:
On Fri, Feb 1, 2013 at 3:45 PM, Juan Lang juan.lang@gmail.com wrote:
Hi Marcus,
add_oid_to_usage(usage, ptr);
usage = add_oid_to_usage(usage, ptr);
This looks fine, but would you mind making the same change on line 337?
Actually, perhaps I hit sent too early. If this memory allocation fails,
which is the only situation under which add_oid_to_usage doesn't just return its first parameter, it'll immediately crash on the next invocation with a NULL pointer dereference.
I'm not sure it's worth all the trouble in an out of memory situation. Perhaps just remove the return value and let the caller crash.
Actually the loop around checks that as a condition and would lead to return NULL:
for (ptr = usageStr, comma = strchr(ptr, ','); usage && ptr && *ptr;
For the second one the loop around does not catch it.
I think the add_oid_to_usage() should not even do it this way and not touch "usage" at all, but instead return a memory allocation error and let the caller handle it:/
Or just let it crash.
Ciao, Marcus