Hi On 2021-04-12 at 08:41 +0200, Samuel Thibault <[email protected]> wrote: > Aura Kelloniemi, le lun. 12 avril 2021 09:33:33 +0300, a ecrit: > > Various BrlAPI functions return strings to the caller (in one way or > > another). > > What is the character set of these strings? Can I assume them to be UTF-8 > > or > > ASCII? > > > > To give examples: driver names, model identifiers, key names, key code > > descriptions, error messages from brlapi_strerror, etc.
> They are all ASCII. Ok, thanks. I researched the error messages case, and I suspect that they might be encoded in whatever character set in the case of C library errors, because strerror might return a translated message, which is in the user's locale. I also found race conditions from brlapi_strerror. Its result buffer will be clobbered, if brlapi_strerror is called simultaneously from multiple threads. This function also calls strerror, which contains the same race condition by definition. I don't think there is a portable way of fixing it, but on GNU libc strerror_r should probably be used. gai_strerror probably has the same issue. Could a new function brlapi_strerror_r be added that would be re-entrant? -- Aura _______________________________________________ This message was sent via the BRLTTY mailing list. To post a message, send an e-mail to: [email protected] For general information, go to: http://brltty.app/mailman/listinfo/brltty
