diff --git a/ChangeLog b/ChangeLog index fab025f39..ee8e044cb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2004-08-21 Tor Lillqvist + + * glib/gunicollate.c (g_utf8_collate_key): Guard against bogus + return value from strxfrm(). For instance Microsoft's strxfrm() + returns INT_MAX on errors. (#141124) + 2004-08-19 Tor Lillqvist * glib/gunicollate.c (g_utf8_collate, g_utf8_collate_key): Correct @@ -9,11 +15,11 @@ * configure.in: Added "bs" to ALL_LINGUAS. 2004-08-13 Matthias Clasen - + * configure.in: Post-release version bump. * === Released 2.4.6 === - + Fri Aug 13 01:25:06 2004 Matthias Clasen * NEWS: Updates. diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index fab025f39..ee8e044cb 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,9 @@ +2004-08-21 Tor Lillqvist + + * glib/gunicollate.c (g_utf8_collate_key): Guard against bogus + return value from strxfrm(). For instance Microsoft's strxfrm() + returns INT_MAX on errors. (#141124) + 2004-08-19 Tor Lillqvist * glib/gunicollate.c (g_utf8_collate, g_utf8_collate_key): Correct @@ -9,11 +15,11 @@ * configure.in: Added "bs" to ALL_LINGUAS. 2004-08-13 Matthias Clasen - + * configure.in: Post-release version bump. * === Released 2.4.6 === - + Fri Aug 13 01:25:06 2004 Matthias Clasen * NEWS: Updates. diff --git a/ChangeLog.pre-2-12 b/ChangeLog.pre-2-12 index fab025f39..ee8e044cb 100644 --- a/ChangeLog.pre-2-12 +++ b/ChangeLog.pre-2-12 @@ -1,3 +1,9 @@ +2004-08-21 Tor Lillqvist + + * glib/gunicollate.c (g_utf8_collate_key): Guard against bogus + return value from strxfrm(). For instance Microsoft's strxfrm() + returns INT_MAX on errors. (#141124) + 2004-08-19 Tor Lillqvist * glib/gunicollate.c (g_utf8_collate, g_utf8_collate_key): Correct @@ -9,11 +15,11 @@ * configure.in: Added "bs" to ALL_LINGUAS. 2004-08-13 Matthias Clasen - + * configure.in: Post-release version bump. * === Released 2.4.6 === - + Fri Aug 13 01:25:06 2004 Matthias Clasen * NEWS: Updates. diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index fab025f39..ee8e044cb 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,9 @@ +2004-08-21 Tor Lillqvist + + * glib/gunicollate.c (g_utf8_collate_key): Guard against bogus + return value from strxfrm(). For instance Microsoft's strxfrm() + returns INT_MAX on errors. (#141124) + 2004-08-19 Tor Lillqvist * glib/gunicollate.c (g_utf8_collate, g_utf8_collate_key): Correct @@ -9,11 +15,11 @@ * configure.in: Added "bs" to ALL_LINGUAS. 2004-08-13 Matthias Clasen - + * configure.in: Post-release version bump. * === Released 2.4.6 === - + Fri Aug 13 01:25:06 2004 Matthias Clasen * NEWS: Updates. diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index fab025f39..ee8e044cb 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,9 @@ +2004-08-21 Tor Lillqvist + + * glib/gunicollate.c (g_utf8_collate_key): Guard against bogus + return value from strxfrm(). For instance Microsoft's strxfrm() + returns INT_MAX on errors. (#141124) + 2004-08-19 Tor Lillqvist * glib/gunicollate.c (g_utf8_collate, g_utf8_collate_key): Correct @@ -9,11 +15,11 @@ * configure.in: Added "bs" to ALL_LINGUAS. 2004-08-13 Matthias Clasen - + * configure.in: Post-release version bump. * === Released 2.4.6 === - + Fri Aug 13 01:25:06 2004 Matthias Clasen * NEWS: Updates. diff --git a/glib/gunicollate.c b/glib/gunicollate.c index 9ca3a5822..ff7ad3d68 100644 --- a/glib/gunicollate.c +++ b/glib/gunicollate.c @@ -231,6 +231,14 @@ g_utf8_collate_key (const gchar *str, if (str_locale) { xfrm_len = strxfrm (NULL, str_locale, 0); + if (xfrm_len < 0 || xfrm_len >= G_MAXINT - 2) + { + g_free (str_locale); + str_locale = NULL; + } + } + if (str_locale) + { result = g_malloc (xfrm_len + 2); result[0] = 'A'; strxfrm (result + 1, str_locale, xfrm_len + 1);