Re: trouble with asprintf

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

 



On 02/10/08 16:06, Wolfgang Rohdewald wrote:
> Hi,
> 
> I am making the muggle plugin work with UTF-8 and have a little problem:
> 
> since asprintf leads to segfaults if feeded with incorrect UTF-8 characters,
> I wanted to write a wrapper function which would then check the return value
> of asprintf. However I have a problem with the variable argument list and
> the va_* macros. Using gdb shows that, in the following example, in
> 
>         res=asprintf (strp, fmt, ap);
> 
> ap is interpreted not as a list of arguments but as an integer.
> 
> What is wrong here?
> 
> BTW I am quite sure that vdr will sometimes coredump since it never checks the
> return value of asprintf. One suspect would be if somebody used a latin1
> charset and had special characters like äöü in file names and then changes
> to utf-8 without converting file names to utf-8. If vdr then passes such
> a file name to asprintf, corrupted memory results. Might be difficult
> to debug remotely.

You could use VDR's cString::sprintf() instead.
This is probably also what I am going to do in the VDR core code,
to avoid asprintf() altogether. The single leftover vasprintf()
call in cString::sprintf() can then be made safe.

Klaus

_______________________________________________
vdr mailing list
vdr@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


[Index of Archives]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Big List of Linux Books]     [Fedora Users]     [Fedora Women]     [ALSA Devel]     [Linux USB]

  Powered by Linux