|
From: | Lidong Chen |
Subject: | Re: Proposal v2: fs/iso9660: Prevent skipping CE or ST at start of continuation area |
Date: | Fri, 6 Jan 2023 05:30:19 +0000 |
In the original the CE code, ‘off’ and ‘ce_block’ were assigned with
the values (highlighted below) that the above suggested fix tries to
check against. So, it looks like it will never end here. Are the above check
on ‘ce_block’ and ‘off’ still needed?
/* The last entry. */
if (grub_strncmp ((char
*) entry->sig, "ST",
2) ==
0)
break;
/* Additional entries are stored elsewhere. */
if (grub_strncmp
((char *) entry->sig, "CE", 2)
== 0)
{
struct grub_iso9660_susp_ce
*ce;
grub_disk_addr_t ce_block;
ce = (struct grub_iso9660_susp_ce
*) entry;
sua_size = grub_le_to_cpu32 (ce->len);
off = grub_le_to_cpu32 (ce->off);
ce_block = grub_le_to_cpu32 (ce->blk) << GRUB_ISO9660_LOG2_BLKSZ;
….
entry = (struct grub_iso9660_susp_entry
*) sua;
}
if (hook
(entry, hook_arg))
{
grub_free (sua);
return 0;
}
Thanks,
Lidong
|
[Prev in Thread] | Current Thread | [Next in Thread] |