Messages in this thread |  | | From | OGAWA Hirofumi <> | | Subject | Re: [PATCH v4] FAT: Allow 0xE9 near jump in fat_read_static_bpb() | | Date | Tue, 05 May 2026 01:35:26 +0900 |
| |
OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> writes:
ping?
> OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> writes: > > Please apply this too. > > Thanks. > >> Ziran Zhang <zhangcoder@yeah.net> writes: >> >>> The fat_read_static_bpb() only accepts a short jump as a valid >>> bootstrap code signature for DOS 1.x volumes when the dos1xfloppy >>> mount option is used. >>> >>> However, according to the Microsoft fatgen103.doc, the BS_jmpBoot >>> field has two allowed forms: 0xEB 0x?? 0x90 (short jump + NOP) >>> and 0xE9 0x?? 0x?? (near jump). The specification explicitly states >>> that either form is acceptable. >>> >>> This patch relaxes the check to also accept 0xE9 as the first byte of >>> the jump instruction. >>> >>> Changes in v4: >>> - Add original commit log >>> >>> Signed-off-by: Ziran Zhang <zhangcoder@yeah.net> >> >> Thanks. >> >> Acked-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> >> >>> --- >>> >>>> Could you add original commit log, instead of changelog? >>>> >>>> Thanks. >>> >>> Done! Please ignore the earlier erroneous v2 v2 and v3. >>> >>> fs/fat/inode.c | 5 +++-- >>> 1 file changed, 3 insertions(+), 2 deletions(-) >>> >>> diff --git a/fs/fat/inode.c b/fs/fat/inode.c >>> index 28f78df08..0e7d106ea 100644 >>> --- a/fs/fat/inode.c >>> +++ b/fs/fat/inode.c >>> @@ -1479,8 +1479,9 @@ static int fat_read_static_bpb(struct super_block *sb, >>> int error = -EINVAL; >>> unsigned i; >>> >>> - /* 16-bit DOS 1.x reliably wrote bootstrap short-jmp code */ >>> - if (b->ignored[0] != 0xeb || b->ignored[2] != 0x90) { >>> + /* 16-bit DOS 1.x reliably wrote bootstrap short-jmp or near-jmp code */ >>> + if ((b->ignored[0] != 0xeb || b->ignored[2] != 0x90) && >>> + (b->ignored[0] != 0xe9)) { >>> if (!silent) >>> fat_msg(sb, KERN_ERR, >>> "%s; no bootstrapping code", notdos1x);
-- OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
|  |