Re: [PATCH] powerpc/ipic: Fix a bounds check in ipic_set_priority()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Le 07/12/2018 à 03:07, Michael Ellerman a écrit :
Christophe LEROY <christophe.leroy@xxxxxx> writes:
Le 05/12/2018 à 04:26, Michael Ellerman a écrit :
Hi Dan,

Thanks for the patch.

Dan Carpenter <dan.carpenter@xxxxxxxxxx> writes:
The ipic_info[] array only has 95 elements so I have made the bounds
check smaller to prevent a read overflow.  It was Smatch that found
this issue:

      arch/powerpc/sysdev/ipic.c:784 ipic_set_priority()
      error: buffer overflow 'ipic_info' 95 <= 127

Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
---
I wasn't able to find any callers of this code.  Maybe we removed the
last one in commit b9f0f1bb2bca ("[POWERPC] Adapt ipic driver to new
host_ops interface, add set_irq_type to set IRQ sense").  So perhaps we
should just remove it.  I'm not really comfortable doing that myself,
because I don't know the code well enough and can't build test
it properly.

Hah wow, last usage removed in 2006!

I don't see any mention of it since then, so I'll remove it. If it
breaks something we can put it back.

Can smatch help us find things like this that are defined non-static but
never used?


I think we have to do that carrefully. Some of those functions might be
used by out-of-tree boards.

We don't keep unused code around for out-of-tree boards.

Either the out-of-tree code should be merged upstream, or you can
maintain whatever extra functions you need as part of your out-of-tree
code base.

I'm thinking especially at ipic_get_mcp_status() and
ipic_set_mcp_status(). They are used in my 832x boards's machine check
handler to know when a machine check is a timeout from the 832x watchdog.

Thanks for pointing them out, I'll send a patch to remove them :)

Lol :)

If you are doing the housework, you can remove ipic_set_highest_priority() ipic_enable_mcp() and ipic_disable_mcp()



But seriously, why is your machine check code not in-tree, is there some
reason you can't merge it?

Maybe because you haven't merged it yet allthough I sent it more than three minutes ago. :)

Seriously, that was just left over with other priorities, and also because I'm not too happy about it because what I would really like is that it kills the userland app if any but don't crash the system when it is in interrupt or in idle.

But due to b96672dd840f ("powerpc: Machine check interrupt is a non-maskable interrupt"), die_will_crash() doesn't work anymore. So for the time being, the patch I sent is not killing anybody, just doing an Oops for notification (note that die_will_crash() is used in the Opal machine check handler, so it probably doesn't work anymore there either).

Christophe



[Index of Archives]     [Kernel Development]     [Kernel Announce]     [Kernel Newbies]     [Linux Networking Development]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Device Mapper]

  Powered by Linux