2009-11-25 14:00:03

by liu weni

[permalink] [raw]
Subject: [PATCH V2]irq/core: Add a length limitation

---
In this version, I modify the code by Ingo's suggestion,
and less code add.
The code will check the irqaction->name's length
and avoid Using too long name without any notice.
---
Signed-off-by: Liuwenyi<[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Rusty Russell <[email protected]>
Cc: Mike Travis <[email protected]>
Cc: Alexey Dobriyan <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Cc: [email protected]

---
diff --git a/kernel/irq/proc.c b/kernel/irq/proc.c
index 0832145..b91dcb1 100644
--- a/kernel/irq/proc.c
+++ b/kernel/irq/proc.c
@@ -196,6 +196,8 @@ void register_handler_proc(unsigned int irq, struct irqaction *action)
char name [MAX_NAMELEN];
struct irq_desc *desc = irq_to_desc(irq);

+ WARN_ON(strlen(action->name) < MAX_NAMELEN);
+
if (!desc->dir || action->dir || !action->name ||
!name_unique(irq, action))
return;


--------------
Best Regards,
Liuweni
2009-11-25


2009-11-25 14:08:39

by Thomas Gleixner

[permalink] [raw]
Subject: Re: [PATCH V2]irq/core: Add a length limitation

On Wed, 25 Nov 2009, Liuweni wrote:

> ---
> In this version, I modify the code by Ingo's suggestion,
> and less code add.
> The code will check the irqaction->name's length
> and avoid Using too long name without any notice.
>
> --- a/kernel/irq/proc.c
> +++ b/kernel/irq/proc.c
> @@ -196,6 +196,8 @@ void register_handler_proc(unsigned int irq, struct irqaction *action)
> char name [MAX_NAMELEN];
> struct irq_desc *desc = irq_to_desc(irq);
>
> + WARN_ON(strlen(action->name) < MAX_NAMELEN);
> +

This is going to warn on every action->name which is actually used in
the kernel except for the ones which are too long.

Thanks,

tglx

2009-11-25 14:16:50

by Yong Zhang

[permalink] [raw]
Subject: Re: [PATCH V2]irq/core: Add a length limitation

On Wed, Nov 25, 2009 at 10:08 PM, Thomas Gleixner <[email protected]> wrote:
> On Wed, 25 Nov 2009, Liuweni wrote:
>
>>  ---
>> In this version, I modify the code by Ingo's suggestion,
>> and less code add.
>> The code will check the irqaction->name's length
>> and avoid Using too long name without any notice.
>>
>> --- a/kernel/irq/proc.c
>> +++ b/kernel/irq/proc.c
>> @@ -196,6 +196,8 @@ void register_handler_proc(unsigned int irq, struct irqaction *action)
>>       char name [MAX_NAMELEN];
>>       struct irq_desc *desc = irq_to_desc(irq);
>>
>> +     WARN_ON(strlen(action->name) < MAX_NAMELEN);
>> +
>
> This is going to warn on every action->name which is actually used in
> the kernel except for the ones which are too long.
>

Even we add WARN_ON(strlen(action->name) > MAX_NAMELEN), I think it doesn't
affect the runtime things, what it could tell is that there maybe two
different irqs
with the same name showed under /proc

Thanks,
Yong

> Thanks,
>
>        tglx
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
>