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:41:18 +00:00 committed by Tor Lillqvist
parent f2daf6dece
commit c43edd263b
6 changed files with 48 additions and 10 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

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

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

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

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

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