[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] Gracefully handle incompatible locale data
From: |
Ludovic Courtès |
Subject: |
[PATCH] Gracefully handle incompatible locale data |
Date: |
Tue, 22 Sep 2015 17:27:55 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
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?
Thanks,
Ludo’.
2015-10-22 Ludovic Courtès <address@hidden>
* locale/loadlocale.c (_nl_intern_locale_data): Change assertion
on CNT to a conditional jump to 'puntdata'.
diff --git a/locale/loadlocale.c b/locale/loadlocale.c
index fdba6e9..e04e720 100644
--- a/locale/loadlocale.c
+++ b/locale/loadlocale.c
@@ -122,8 +122,9 @@ _nl_intern_locale_data (int category, const void *data,
size_t datasize)
{
#define CATTEST(cat) \
case LC_##cat: \
- assert (cnt < (sizeof (_nl_value_type_LC_##cat) \
- / sizeof (_nl_value_type_LC_##cat[0]))); \
+ if (cnt >= (sizeof (_nl_value_type_LC_##cat) \
+ / sizeof (_nl_value_type_LC_##cat[0]))) \
+ goto puntdata; \
break
CATTEST (NUMERIC);
CATTEST (TIME);
- [PATCH] Gracefully handle incompatible locale data,
Ludovic Courtès <=
- Re: [PATCH] Gracefully handle incompatible locale data, Roland McGrath, 2015/09/22
- Re: [PATCH] Gracefully handle incompatible locale data, Ondřej Bílka, 2015/09/22
- Re: [PATCH] Gracefully handle incompatible locale data, Ludovic Courtès, 2015/09/22
- Re: [PATCH] Gracefully handle incompatible locale data, Ondřej Bílka, 2015/09/22
- Re: [PATCH] Gracefully handle incompatible locale data, Ludovic Courtès, 2015/09/23
- Re: [PATCH] Gracefully handle incompatible locale data, Ondřej Bílka, 2015/09/24
- Re: [PATCH] Gracefully handle incompatible locale data, Ludovic Courtès, 2015/09/24
- Re: [PATCH] Gracefully handle incompatible locale data, Carlos O'Donell, 2015/09/25
- Re: [PATCH] Gracefully handle incompatible locale data, Ludovic Courtès, 2015/09/26
- Re: [PATCH] Gracefully handle incompatible locale data, Carlos O'Donell, 2015/09/29