bug-gettext
[Top][All Lists]
Advanced

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

Re: dc*gettext call SIGABRT on macOs - version 0.22.5


From: David CARLIER
Subject: Re: dc*gettext call SIGABRT on macOs - version 0.22.5
Date: Wed, 28 Feb 2024 21:52:14 +0000

Hi and thank.

Fair enough, even tough an abort might be kind of extreme :) but I m no expert in gettext.

Cheers.

On Wed, 28 Feb 2024 at 21:39, Bruno Haible <bruno@clisp.org> wrote:
Hi,

David CARLIER wrote:
> Maybe it had been reported already and it might be only a specific macOs
> issue but a basic code like the following now triggers abort with 0.22.5
> whereas with the previous release it does not (note that s the homebrew
> package but looking at the build, it does not indicate doing something
> fancy neither)
>
> #include <libintl.h>
>
>
> int main(void)
>
> {
>
> dcgettext("", "", 0);
>
> return 0;
>
> }
>
>
> ./a.out
>
> zsh: abort      ./a.out

The documentation [1] says about the third argument to dcgettext():
  "The third argument of dcgettext allows to use another locale category
   but LC_MESSAGES. ... If the domain_name is NULL or category has an
   value beside the known ones, the result is undefined."

0 is LC_ALL on macOS. That's not a locale category, but rather a symbol
that denotes all locale categories. So it is invalid.

> here the backrace
>
>     frame #2: 0x000000018b1c5a40 libsystem_c.dylib`abort + 180
>
>     frame #3: 0x00000001004866e0 libintl.8.dylib` *_libintl_locale_name_thread_unsafe* + 108
>
>     frame #4: 0x0000000100483aac libintl.8.dylib`libintl_dcigettext + 184
>
>     frame #5: 0x0000000100003f88 a.out`main + 40

It means that libintl now does stricter checking against invalid arguments.
Which is a good thing.

Bruno

[1] https://www.gnu.org/software/gettext/manual/html_node/Ambiguities.html




reply via email to

[Prev in Thread] Current Thread [Next in Thread]