From: Thomas Gleixner <tglx@linutronix.de>
To: Jiasheng Jiang <jiasheng@iscas.ac.cn>
Cc: linux-kernel@vger.kernel.org
Subject: Re:Re:[PATCH 6/6] irq: Potentially 'offset out of size' bug
Date: Tue, 14 Sep 2021 14:27:04 +0200 [thread overview]
Message-ID: <87k0jjcpgn.ffs@tglx> (raw)
In-Reply-To: <1631609290-2830831-1-git-send-email-jiasheng@iscas.ac.cn>
On Tue, Sep 14 2021 at 08:48, Jiasheng Jiang wrote:
>> On Fri, Sep 10 2021 at 03:26, Jiasheng Jiang wrote:
>> The find_next_bit() use nr_irqs as size, and using it without
>> any check might cause its returned value out of the sizei
>
> On Fri, Sep 10 2021 at 18:28, tglx wrote:
>> Why exactly is this a problem? The return value has to be checked at the
>> call site anyway.
>
> There is really a check at the call site, but the annotation of the
> irq_get_next_irq() is 'Returns next irq number after offset or nr_irqs
> if none is found', which tells the programmer should not check the
> return value of it. In case of a programmer write a new call for the
> irq_get_next_irq(), he may not check the return value because of the
> annotation said.
The return value has always to be checked because nr_irqs is guaranteed
to be an invalid index.
> Therefore, it had better to add the check inside of irq_get_next_irq()
> to fit for the annotation.
Care to look what find_next_bit(..., size) does?
* Returns the bit number for the next set bit
* If no bits are set, returns @size.
So for:
res = find_next_bit(addr, size, offset);
res is guaranteed to be:
offset < res <= size
IOW. irq_get_next_irq() is doing exactly what the comment says.
So again, which problem are you trying to solve?
Thanks,
tglx
prev parent reply other threads:[~2021-09-14 12:27 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-14 8:48 Re:Re:[PATCH 6/6] irq: Potentially 'offset out of size' bug Jiasheng Jiang
2021-09-14 12:27 ` Thomas Gleixner [this message]
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=87k0jjcpgn.ffs@tglx \
--to=tglx@linutronix.de \
--cc=jiasheng@iscas.ac.cn \
--cc=linux-kernel@vger.kernel.org \
/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.