Guard against bogus return value from strxfrm(). For instance Microsoft's

2004-08-21  Tor Lillqvist  <tml@iki.fi>

	* 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)
This commit is contained in:
Tor Lillqvist 2004-08-21 13:43:51 +00:00 committed by Tor Lillqvist
parent c61e425b91
commit e65caea220
6 changed files with 43 additions and 5 deletions

View File

@ -1,3 +1,9 @@
2004-08-21 Tor Lillqvist <tml@iki.fi>
* 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 <tml@iki.fi>
* glib/gunicollate.c (g_utf8_collate, g_utf8_collate_key): Correct
@ -120,7 +126,7 @@ Sun Aug 1 13:19:18 2004 Manish Singh <yosh@gimp.org>
to run_roundtrip_tests().
2004-08-01 Matthias Clasen <mclasen@redhat.com>
* Post-release version bump
* === Released 2.5.1 ===

View File

@ -1,3 +1,9 @@
2004-08-21 Tor Lillqvist <tml@iki.fi>
* 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 <tml@iki.fi>
* glib/gunicollate.c (g_utf8_collate, g_utf8_collate_key): Correct
@ -120,7 +126,7 @@ Sun Aug 1 13:19:18 2004 Manish Singh <yosh@gimp.org>
to run_roundtrip_tests().
2004-08-01 Matthias Clasen <mclasen@redhat.com>
* Post-release version bump
* === Released 2.5.1 ===

View File

@ -1,3 +1,9 @@
2004-08-21 Tor Lillqvist <tml@iki.fi>
* 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 <tml@iki.fi>
* glib/gunicollate.c (g_utf8_collate, g_utf8_collate_key): Correct
@ -120,7 +126,7 @@ Sun Aug 1 13:19:18 2004 Manish Singh <yosh@gimp.org>
to run_roundtrip_tests().
2004-08-01 Matthias Clasen <mclasen@redhat.com>
* Post-release version bump
* === Released 2.5.1 ===

View File

@ -1,3 +1,9 @@
2004-08-21 Tor Lillqvist <tml@iki.fi>
* 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 <tml@iki.fi>
* glib/gunicollate.c (g_utf8_collate, g_utf8_collate_key): Correct
@ -120,7 +126,7 @@ Sun Aug 1 13:19:18 2004 Manish Singh <yosh@gimp.org>
to run_roundtrip_tests().
2004-08-01 Matthias Clasen <mclasen@redhat.com>
* Post-release version bump
* === Released 2.5.1 ===

View File

@ -1,3 +1,9 @@
2004-08-21 Tor Lillqvist <tml@iki.fi>
* 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 <tml@iki.fi>
* glib/gunicollate.c (g_utf8_collate, g_utf8_collate_key): Correct
@ -120,7 +126,7 @@ Sun Aug 1 13:19:18 2004 Manish Singh <yosh@gimp.org>
to run_roundtrip_tests().
2004-08-01 Matthias Clasen <mclasen@redhat.com>
* Post-release version bump
* === Released 2.5.1 ===

View File

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