> Hi Guys
>
> Putting this out to a wider audience because I haven't dealt with this
> much before. David's sharing the pain in the bug, but I thought why
> should you lot miss out :)
>
> The two bugs referenced in the title relate to segfaults caused by
> non-ascii characters being passed to wstr_to_ascii, resulting in an
> unchecked NULL return.
>
> The immediate response, wstr_*_ascii is evil :)
>
> However, the solution isn't as obvious, at least to me. I see two
> options.
>
> 1) change all wstr_* to utf8, and assume the system can deal with utf8.
> Advantages, it's quite easy. Disadvantages, it's a big assumption and
> will blow up.
>
> 2) use utf8 internally, so we never lose anything in conversions from
> either the host or the device. We then have to convert to the locale
> when going out to the host. Much more work, but more reliable.
>
>
> Ok, so 2) sounds good. When getting input from the host we convert from
> locale to utf8 and lose nothing. However, what I can't see is what to do
> if, for instance, we get a wstr from the device, then convert that to
> the locale that can't deal with the characters in the wstr ? Substitute
> something like "__untranslatable__" ?

Maybe another possible way out out would be to check the iconv(3) return
code and if it is EILSEQ, patch *inbuf to contain for example '?', and
keep going...

Merry Christmas!

David, http://www.divideandconquer.se/



------------------------------------------------------------------------------
_______________________________________________
SynCE-Devel mailing list
SynCE-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/synce-devel

Reply via email to