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

Re: xplc: FTBFS on hurd-i386 (for review)



Alle giovedì 30 agosto 2012, Svante Signell ha scritto:
> On Thu, 2012-08-30 at 20:14 +0200, Samuel Thibault wrote:
> > Svante Signell, le Thu 30 Aug 2012 19:07:19 +0200, a écrit :
> > 
> > fname gets allocated at each while loop iteration, but only freed
> > once later.  You need to either just free before allocating with
> > the new size, or reuse the same buffer (extending it if needed).
> 
> Updated patch attached. Better?
> 
> [...]
> -  char fname[PATH_MAX];
> +  char *fname = NULL;
> +  int len = 0;
>    IServiceManager* servmgr = XPLC_getServiceManager();
> -    snprintf(fname, PATH_MAX, "%s/%s", directory, ent->d_name);
> +    len = strlen(directory) + 1 + strlen(ent->d_name) + 1;
> +    if (fname != NULL)
> +      free(fname);
> +    fname = (char*)malloc(len);
> +    snprintf(fname, len, "%s/%s", directory, ent->d_name);

Just realloc the fname buffer if the new len is greater than the old one 
(which needs to be saved), otherwise the current patch just does an 
inefficient malloc/free job every iteration which (most probably 
upstream won't like).

-- 
Pino Toscano

Attachment: signature.asc
Description: This is a digitally signed message part.


Reply to: