guix/gnu/packages/patches/glibc-locale-incompatibility.patch
Ludovic Courtès 2ae71b746b gnu: glibc: Do not abort when incompatible locale data is found.
* gnu/packages/patches/glibc-locale-incompatibility.patch: New file.
* gnu/packages/base.scm (glibc)[source]: Use it.
* gnu-system.am (dist_patch_DATA): Add it.
2015-10-03 14:36:07 +02:00

23 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);