All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>
Cc: linux-usb@vger.kernel.org
Subject: Re: [PATCH 4/7] usb: storage: ene_ub6250: bound the disabled block walk
Date: Tue, 27 Oct 2026 14:52:45 +0000	[thread overview]
Message-ID: <sashiko-outbox-186770@kernel.org> (raw)
In-Reply-To: <20261027-llm-usb-storage-v1-4-d1655e94ed10@linuxfoundation.org>

> From: Josef Bacik <josef@toxicpanda.com>
> 
> When two physical blocks of a Memory Stick both claim logical block 0,
> which happens after an interrupted update of that block or on a crafted
> card, the ENE UB6250 driver can spin forever in the usb-storage thread
> while reading through 64KiB past a 512-byte buffer, over and over.
> 
> ms_lib_check_disableblock() reads page 1 of the boot block, which holds
> the disabled block table: big-endian 16-bit block numbers terminated by
> 0xffff, the same table ms_lib_process_bootblock() parses with
> be16_to_cpu() on 16-bit entries.  The walk, however, indexes the buffer
> as unsigned char and has no upper bound:
> 
>     blk = be16_to_cpu(PageBuf[index]);
>     if (blk == MS_LB_NOT_USED)
>             break;
> 
> A byte converted this way can never equal 0xffff, so the loop only ends
> if some byte happens to match Log2PhyMap[0].  Otherwise the u16 index
> runs through the 64KiB following the kmalloc()ed page and wraps around,
> forever.
> 
> The bug was found by code inspection and has not been reproduced.
> 
> Fix by walking the table as 16-bit big-endian entries and stopping at
> the end of the page.
> 
> Fixes: 33842cedfc33 ("Staging: Merge ENE UB6250 MS card codes from keucr to drivers/usb/storage/ene_ub6250.c")
> Signed-off-by: Josef Bacik <josef@toxicpanda.com>
> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Sashiko has reviewed this patch and found no issues.

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261027-llm-usb-storage-v1-0-d1655e94ed10@linuxfoundation.org?part=4


  reply	other threads:[~2026-10-27 14:52 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-27 14:40 [PATCH 0/7] usb: storage: some llm-found patches Greg Kroah-Hartman
2026-10-27 14:40 ` [PATCH 1/7] usb: storage: ene_ub6250: fail MS init on card errors Greg Kroah-Hartman
2026-10-27 14:53   ` sashiko-bot
2026-10-27 14:40 ` [PATCH 2/7] usb: storage: ene_ub6250: report boot block errors Greg Kroah-Hartman
2026-10-27 14:53   ` sashiko-bot
2026-10-27 14:40 ` [PATCH 3/7] usb: storage: ene_ub6250: fix write to unmapped MS block Greg Kroah-Hartman
2026-10-27 14:51   ` sashiko-bot
2026-10-27 14:40 ` [PATCH 4/7] usb: storage: ene_ub6250: bound the disabled block walk Greg Kroah-Hartman
2026-10-27 14:52   ` sashiko-bot [this message]
2026-10-27 14:40 ` [PATCH 5/7] usb: storage: sddr09: bound the unused PBA search Greg Kroah-Hartman
2026-10-27 14:50   ` sashiko-bot
2026-10-27 14:40 ` [PATCH 6/7] usb: storage: shuttle_usbat: fix READ CD divide by zero Greg Kroah-Hartman
2026-10-27 14:51   ` sashiko-bot
2026-10-27 14:40 ` [PATCH 7/7] usb: storage: shuttle_usbat: bound the READ chunk size Greg Kroah-Hartman
2026-10-27 14:48   ` sashiko-bot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=sashiko-outbox-186770@kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=sashiko-reviews@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.