Udo Richter wrote:
> Wolfgang Rohdewald wrote:
> >     char *s;
> >     asprintf(&s,"%ld-%.9s",random(),artist.original());
> > 
> > segfaults only if illegal utf8 chars appear in artist.original()
> > 
> > asprintf returns -1, so s is nothing that could be freed,
> > and this gives a nice backtrace:
> So its basically just free'ing an uninitialized pointer.
> Well, that leads to the question whether s is unchanged in case of a -1 
> error return, and whether this would work:
>       char *s = NULL;
>       asprintf(&s,"%ld-%.9s",random(),artist.original());

The manpage explicitly says that the content of s is undefined in
case of error. So even if it works you can't really count on it. You
can't get around checking the return value.


 (o_   Ludwig Nussel
 //\   SUSE LINUX Products GmbH, Development
 V_/_  http://www.suse.de/

vdr mailing list

Reply via email to