mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-05 16:20:10 +00:00
Correct the handling of display names.
svn path=/trunk/; revision=17982
This commit is contained in:
parent
07749fa1a3
commit
8bd39297a6
10
ChangeLog
10
ChangeLog
@ -1,3 +1,8 @@
|
||||
2007-05-30 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtkiconcachevalidator.c: Correct the handling
|
||||
of display names. (#441767, Marcin Bachry)
|
||||
|
||||
2007-05-30 Xan Lopez <xan@gnome.org>
|
||||
|
||||
* gtk/gtknotebook.c (gtk_notebook_set_current_page): Small cleanup.
|
||||
@ -77,6 +82,11 @@
|
||||
(cups_printer_get_capabilities): Add a new print capability to specify
|
||||
whether print dialog will offer printing multiple pages per sheet. (#398414)
|
||||
|
||||
2007-05-28 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtktoolbar.h: Actually undeprecate
|
||||
gtk_toolbar_[un]set_icon_size. (#314172. Yevgen Muntyan)
|
||||
|
||||
2007-05-28 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtkwidget.c: Document some more signals
|
||||
|
@ -103,6 +103,32 @@ check_string (CacheInfo *info,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
check_string_utf8 (CacheInfo *info,
|
||||
guint32 offset)
|
||||
{
|
||||
check ("string offset", offset < info->cache_size);
|
||||
|
||||
if (info->flags & CHECK_STRINGS)
|
||||
{
|
||||
gint i;
|
||||
gchar c;
|
||||
|
||||
/* assume no string is longer than 1k */
|
||||
for (i = 0; i < 1024; i++)
|
||||
{
|
||||
check ("string offset", offset + i < info->cache_size)
|
||||
c = *(info->cache + offset + i);
|
||||
if (c == '\0')
|
||||
break;
|
||||
}
|
||||
check ("string length", i < 1024);
|
||||
check ("string utf8 data", g_utf8_validate((char *)(info->cache + offset), -1, NULL));
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
check_directory_list (CacheInfo *info,
|
||||
guint32 offset)
|
||||
@ -172,16 +198,18 @@ static gboolean
|
||||
check_display_name_list (CacheInfo *info,
|
||||
guint32 offset)
|
||||
{
|
||||
guint32 n_display_names;
|
||||
guint32 n_display_names, ofs;
|
||||
gint i;
|
||||
|
||||
check ("offset, display name list",
|
||||
get_uint32 (info, offset, &n_display_names));
|
||||
for (i = 0; i < n_display_names; i++)
|
||||
{
|
||||
if (!check_string (info, offset + 4 + 8 * i))
|
||||
get_uint32(info, offset + 4 + 8 * i, &ofs);
|
||||
if (!check_string (info, ofs))
|
||||
return FALSE;
|
||||
if (!check_string (info, offset + 4 + 8 * i + 4))
|
||||
get_uint32(info, offset + 4 + 8 * i + 4, &ofs);
|
||||
if (!check_string_utf8 (info, ofs))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user