++ entry_name = tzdata + entry_name_start;
++
++ /* The name should be null terminated within the 40 chars. */
++ if (memchr (entry_name, 0, 40) == NULL)
++ {
++ g_warning ("Invalid index entry");
++ goto error;
++ }
++
++ if (strcmp (entry_name, identifier) == 0)
++ {
++ entry_offset = gint32_from_be (*(gint32_be*) (entry_name + 40));
++ entry_length = gint32_from_be (*(gint32_be*) (entry_name + 44));
++ if (entry_length == 0 || entry_length > 65536)