24 lines
808 B
Diff
24 lines
808 B
Diff
|
This patch avoids an assertion failure when incompatible locale data
|
||
|
is encountered:
|
||
|
|
||
|
https://sourceware.org/ml/libc-alpha/2015-09/msg00575.html
|
||
|
|
||
|
--- glibc-2.22/locale/loadlocale.c 2015-09-22 17:16:02.321981548 +0200
|
||
|
+++ glibc-2.22/locale/loadlocale.c 2015-09-22 17:17:34.814659064 +0200
|
||
|
@@ -120,10 +120,11 @@
|
||
|
_nl_value_type_LC_XYZ array. There are all pointers. */
|
||
|
switch (category)
|
||
|
{
|
||
|
-#define CATTEST(cat) \
|
||
|
- case LC_##cat: \
|
||
|
- assert (cnt < (sizeof (_nl_value_type_LC_##cat) \
|
||
|
- / sizeof (_nl_value_type_LC_##cat[0]))); \
|
||
|
+#define CATTEST(cat) \
|
||
|
+ case LC_##cat: \
|
||
|
+ if (cnt >= (sizeof (_nl_value_type_LC_##cat) \
|
||
|
+ / sizeof (_nl_value_type_LC_##cat[0]))) \
|
||
|
+ goto puntdata; \
|
||
|
break
|
||
|
CATTEST (NUMERIC);
|
||
|
CATTEST (TIME);
|