* Re: [PATCH v4] FAT: Allow 0xE9 near jump in fat_read_static_bpb() [not found] ` <20260412070109.5197-1-zhangcoder@yeah.net> @ 2026-04-12 7:37 ` OGAWA Hirofumi 2026-04-25 17:57 ` OGAWA Hirofumi 0 siblings, 1 reply; 3+ messages in thread From: OGAWA Hirofumi @ 2026-04-12 7:37 UTC (permalink / raw) To: Christian Brauner; +Cc: Ziran Zhang, linux-kernel, linux-fsdevel 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> ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v4] FAT: Allow 0xE9 near jump in fat_read_static_bpb() 2026-04-12 7:37 ` [PATCH v4] FAT: Allow 0xE9 near jump in fat_read_static_bpb() OGAWA Hirofumi @ 2026-04-25 17:57 ` OGAWA Hirofumi 2026-05-04 16:35 ` OGAWA Hirofumi 0 siblings, 1 reply; 3+ messages in thread From: OGAWA Hirofumi @ 2026-04-25 17:57 UTC (permalink / raw) To: Andrew Morton; +Cc: Christian Brauner, Ziran Zhang, linux-kernel, linux-fsdevel 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> ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v4] FAT: Allow 0xE9 near jump in fat_read_static_bpb() 2026-04-25 17:57 ` OGAWA Hirofumi @ 2026-05-04 16:35 ` OGAWA Hirofumi 0 siblings, 0 replies; 3+ messages in thread From: OGAWA Hirofumi @ 2026-05-04 16:35 UTC (permalink / raw) To: Andrew Morton; +Cc: Christian Brauner, Ziran Zhang, linux-kernel, linux-fsdevel 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> ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-05-04 16:43 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <87wlyclmvr.fsf@mail.parknet.co.jp>
[not found] ` <20260412070109.5197-1-zhangcoder@yeah.net>
2026-04-12 7:37 ` [PATCH v4] FAT: Allow 0xE9 near jump in fat_read_static_bpb() OGAWA Hirofumi
2026-04-25 17:57 ` OGAWA Hirofumi
2026-05-04 16:35 ` OGAWA Hirofumi
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox