[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: auto-apt-0.3.22 hurd patch (PATH_MAX)



Here are my immediate comment.s Other people might have a different
opinions.

On Thu, 2012-01-26 at 13:21 +0100, Tanguy LE CARROUR wrote:
> Hi!
> 
> 
> As I'm waiting for feed back on the memstat-0.9, I've started to work
> on auto-apt-0.3.22. It uses PATH_MAX in 2 functions. 
> 
> 
> 1) I fixed pkg_intern() but malloc is in a while loop so each time I
> malloc/free the buffer.... there may be a smartest way to do it only
> once before the while... but I don't know how!

You can use the construct:

char *buf = NULL;
...
if (buf != NULL)
  free(buf);
 malloc(buf,len);
etc.

and then free(buf) after last iteration.

Depends on if the same buffer is changing size or if you need a new
buffer every time. For the first case I think you can use realloc() and
in the second case the above construct.

> 
> 2) The problem in pkg_symbol() is a bit different. The dynamically
> allocated buffer is the return value of the function, so I cannot free
> it in the function. The rest of the code that uses this buffer never
> frees it!
> Am I supposed to fix each part of the code that uses this function to
> free the returned buffer?!

Yes, you need to free the buffer in the calling program(s).



Reply to: