[PATCH] Gracefully handle incompatible locale data
Ondřej Bílka
neleai@seznam.cz
Tue Sep 22 21:50:00 GMT 2015
On Tue, Sep 22, 2015 at 11:22:40PM +0200, Ludovic Courtès wrote:
> OndÅej BÃlka <neleai@seznam.cz> skribis:
>
> > On Tue, Sep 22, 2015 at 05:27:55PM +0200, Ludovic Courtès wrote:
> >> With libc 2.22 people are starting to realize that libc does not
> >> guarantee that it can load locale data built with another libc version,
> >> but they learn it the hard way:
> >>
> >> loadlocale.c:130: _nl_intern_locale_data: Assertion `cnt < (sizeof (_nl_value_type_LC_COLLATE) / sizeof (_nl_value_type_LC_COLLATE[0]))' failed.
> >>
> >> This patch changes such conditions to return EINVAL instead of aborting.
> >>
> >> WDYT?
> >>
> > While that assert is quite cryptic I dont see why just returning EINVAL is
> > better. How do you distinguish that its wrong locale version versus not
> > installed?
>
> The rest of this function already returns EINVAL when something is
> fishy. This patch makes the behavior more consistent.
>
Then I take that back. But I don't see how this is reliable assertion to
detect different libc version. So could you as followup patch add
version field and check that instead this assert?
More information about the Libc-alpha
mailing list