mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Ian Abbott <abbotti@mev.co.uk>
To: Edward Adam Davis <eadavis@qq.com>
Cc: hsweeten@visionengravers.com, linux-kernel@vger.kernel.org,
	syzkaller-bugs@googlegroups.com
Subject: Re: [PATCH V2] commdi: pcl726: Prevent invalid irq number
Date: Mon, 7 Jul 2025 13:23:13 +0100	[thread overview]
Message-ID: <35b9fc97-03d9-4e01-a8d6-b8a061f51619@mev.co.uk> (raw)
In-Reply-To: <tencent_BC9915CFE98D8D25B70D9E9272DDDB5D9607@qq.com>

On 07/07/2025 12:43, Edward Adam Davis wrote:
> The reproducer passed in an irq number(0x80008000) that was too large,
> which triggered the oob.
> 
> Added an interrupt number check to prevent users from passing in an irq
> number that was too large.
> 
> If `it->options[1]` is 31, then `1 << it->options[1]` is still invalid
> because it shifts a 1-bit into the sign bit (which is UB in C).
> Possible solutions include reducing the upper bound on the
> `it->options[1]` value to 30 or lower, or using `1U << it->options[1]`.
> 
> The old code would just not attempt to request the IRQ if the
> `options[1]` value were invalid.  And it would still configure the
> device without interrupts even if the call to `request_irq` returned an
> error.  So it would be better to combine this test with the test below.
> 
> Fixes: fff46207245c ("staging: comedi: pcl726: enable the interrupt support code")
> Cc: <stable@vger.kernel.org> # 5.13+
> Reported-by: syzbot+5cd373521edd68bebcb3@syzkaller.appspotmail.com
> Closes: https://syzkaller.appspot.com/bug?extid=5cd373521edd68bebcb3
> Tested-by: syzbot+5cd373521edd68bebcb3@syzkaller.appspotmail.com
> Signed-off-by: Edward Adam Davis <eadavis@qq.com>
> ---
> V1 -> V2: combine test with old test
> 
>   drivers/comedi/drivers/pcl726.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/comedi/drivers/pcl726.c b/drivers/comedi/drivers/pcl726.c
> index 0430630e6ebb..b542896fa0e4 100644
> --- a/drivers/comedi/drivers/pcl726.c
> +++ b/drivers/comedi/drivers/pcl726.c
> @@ -328,7 +328,8 @@ static int pcl726_attach(struct comedi_device *dev,
>   	 * Hook up the external trigger source interrupt only if the
>   	 * user config option is valid and the board supports interrupts.
>   	 */
> -	if (it->options[1] && (board->irq_mask & (1 << it->options[1]))) {
> +	if (it->options[1] > 0 && it->options[1] < 16 &&
> +	    (board->irq_mask & (1U << it->options[1]))) {
>   		ret = request_irq(it->options[1], pcl726_interrupt, 0,
>   				  dev->board_name, dev);
>   		if (ret == 0) {

Looks good apart from the subject line that still has the "comedi" tag 
misspelled.  Please could you fix that?

You can also add my Reviewed-by: line:

Reviewed-by: Ian Abbott <abbotti@mev.co.uk>

Please also Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> because 
I do not have commit access to any pulled git repos.

Thanks!

-- 
-=( Ian Abbott <abbotti@mev.co.uk> || MEV Ltd. is a company  )=-
-=( registered in England & Wales.  Regd. number: 02862268.  )=-
-=( Regd. addr.: S11 & 12 Building 67, Europa Business Park, )=-
-=( Bird Hall Lane, STOCKPORT, SK3 0XA, UK. || www.mev.co.uk )=-

  reply	other threads:[~2025-07-07 12:31 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-05 11:02 [syzbot] [kernel?] UBSAN: shift-out-of-bounds in pcl726_attach syzbot
2025-07-05 12:47 ` Hillf Danton
2025-07-05 13:06   ` syzbot
2025-07-06  1:51 ` Edward Adam Davis
2025-07-06  2:10   ` syzbot
2025-07-06  2:10 ` [PATCH] commdi: pcl726: Prevent invalid irq number Edward Adam Davis
2025-07-07  9:47   ` Ian Abbott
2025-07-07 10:01     ` Ian Abbott
2025-07-07 11:43       ` [PATCH V2] " Edward Adam Davis
2025-07-07 12:23         ` Ian Abbott [this message]
2025-07-07 12:39           ` [PATCH V3] comedi: " Edward Adam Davis
2025-07-24 11:07             ` [PATCH V3 REPOST] " Ian Abbott
2025-07-24 11:11               ` Ian Abbott

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=35b9fc97-03d9-4e01-a8d6-b8a061f51619@mev.co.uk \
    --to=abbotti@mev.co.uk \
    --cc=eadavis@qq.com \
    --cc=hsweeten@visionengravers.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=syzkaller-bugs@googlegroups.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®