Thank you, I wasn't sure about this.

Le 01:21:09 le 24 déc. 2012 , p37si...@lavabit.com a écrit :
> On Sun, Dec 23, 2012 at 09:51:27PM +0100, Thuban wrote:
> > Hello,
> > I tried to rewrite smprintf to use asprintf, following your advices.
> > Can you check if there is anything wrong?
> > I have some doubt about the necessaries free(). Is it alright if free()
> > is use outside the function?
> > 
> > The code : 
> > 
> > 
> > char *
> > smprintf(char *fmt, ...)
> > {
> >     va_list fmtargs;
> >     char *buf = NULL;
> > 
> >     va_start(fmtargs, fmt);
> >     if (vasprintf(&buf, fmt, fmtargs) == -1){
> >             fprintf(stderr, "malloc vasprintf\n");
> >             exit(1);
> >     }
> >     va_end(fmtargs);
> > 
> >     return buf;
> > }
> 
> It is alright to use free() outside the function, as long as it is
> documented somewhere (in the comment before function, for example)
> that memory should be freed by caller.  For such short code it is ok
> even without comments.
> 
> 

-- 
 ,--.   Xavier Cartron        
: /` )  M2 MEFPC               
| `-'   Debian user             
 \_     jabber : thu...@jabber.fr

Reply via email to