2015-04-13 09:03:04

by Quentin Casasnovas

[permalink] [raw]
Subject: Re: [PATCH 1/7] modpost: add strict white-listing when referencing sections.

On Fri, Mar 20, 2015 at 11:59:41AM +1030, Rusty Russell wrote:
> Quentin Casasnovas <[email protected]> writes:
> > Prints a warning when a section references a section outside a strict
> > white-list. This will be useful to print a warning if __ex_table
> > references a non-executable section.
>
> Hi Quentin,
>
> Really pleasant to read these patches; nice work!
>

Thanks! :)

> > diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
> > index d439856..7094a57 100644
> > --- a/scripts/mod/modpost.c
> > +++ b/scripts/mod/modpost.c
> > @@ -925,7 +925,8 @@ enum mismatch {
> >
> > struct sectioncheck {
> > const char *fromsec[20];
> > - const char *tosec[20];
> > + const char *bad_tosec[20];
> > + const char *good_tosec[20];
> > enum mismatch mismatch;
> > const char *symbol_white_list[20];
>
> My only gripe is that these fields are undocumented. You maintain
> the status quo, but some comments indicating what the mean would be
> nice. Perhaps as a separate patch.
>

Derp, I was sure I had sent a patch following your comment.. Please find
one attached to this e-mail. It should apply cleanly on top of this
series.

> In case you need it (for the whole series):
> Acked-by: Rusty Russell <[email protected]>
>

Thanks again!

May I aks who's supposed to take the series? Or maybe it needs more
acking?

Quentin


Attachments:
(No filename) (1.35 kB)
0001-modpost-document-the-use-of-struct-section_check.patch (1.53 kB)
Download all attachments

2015-04-13 11:31:59

by Rusty Russell

[permalink] [raw]
Subject: Re: [PATCH 1/7] modpost: add strict white-listing when referencing sections.

Quentin Casasnovas <[email protected]> writes:
> On Fri, Mar 20, 2015 at 11:59:41AM +1030, Rusty Russell wrote:
>> Quentin Casasnovas <[email protected]> writes:
>> > Prints a warning when a section references a section outside a strict
>> > white-list. This will be useful to print a warning if __ex_table
>> > references a non-executable section.
>>
>> Hi Quentin,
>>
>> Really pleasant to read these patches; nice work!
>>
>
> Thanks! :)
>
>> > diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
>> > index d439856..7094a57 100644
>> > --- a/scripts/mod/modpost.c
>> > +++ b/scripts/mod/modpost.c
>> > @@ -925,7 +925,8 @@ enum mismatch {
>> >
>> > struct sectioncheck {
>> > const char *fromsec[20];
>> > - const char *tosec[20];
>> > + const char *bad_tosec[20];
>> > + const char *good_tosec[20];
>> > enum mismatch mismatch;
>> > const char *symbol_white_list[20];
>>
>> My only gripe is that these fields are undocumented. You maintain
>> the status quo, but some comments indicating what the mean would be
>> nice. Perhaps as a separate patch.
>>
>
> Derp, I was sure I had sent a patch following your comment.. Please find
> one attached to this e-mail. It should apply cleanly on top of this
> series.
>
>> In case you need it (for the whole series):
>> Acked-by: Rusty Russell <[email protected]>
>>
>
> Thanks again!
>
> May I aks who's supposed to take the series? Or maybe it needs more
> acking?

If noone else has taken it, I'll do so now.

Applied,
Rusty.

>
> Quentin
>>From acab15181879a18140ca3afa69776292e830ea72 Mon Sep 17 00:00:00 2001
> From: Quentin Casasnovas <[email protected]>
> Date: Mon, 13 Apr 2015 10:55:38 +0200
> Subject: [PATCH] modpost: document the use of struct section_check.
>
> struct section_check is used as a generic way of describing what
> relocations are authorized/forbidden when running modpost. This commit
> tries to describe how each field is used.
>
> Signed-off-by: Quentin Casasnovas <[email protected]>
> ---
> scripts/mod/modpost.c | 20 ++++++++++++++++++++
> 1 file changed, 20 insertions(+)
>
> diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
> index dfe9c3c..7b56ae5 100644
> --- a/scripts/mod/modpost.c
> +++ b/scripts/mod/modpost.c
> @@ -930,6 +930,26 @@ enum mismatch {
> EXTABLE_TO_NON_TEXT,
> };
>
> +/**
> + * Describe how to match sections on different criterias:
> + *
> + * @fromsec: Array of sections to be matched.
> + *
> + * @bad_tosec: Relocations applied to a section in @fromsec to a section in
> + * this array is forbidden (black-list). Can be empty.
> + *
> + * @good_tosec: Relocations applied to a section in @fromsec must be
> + * targetting sections in this array (white-list). Can be empty.
> + *
> + * @mistmatch: Type of mismatch.
> + *
> + * @symbol_white_list: Do not match a relocation to a symbol in this list
> + * even if it is targetting a section in @bad_to_sec.
> + *
> + * @handler: Specific handler to call when a match is found. If NULL,
> + * default_mismatch_handler() will be called.
> + *
> + */
> struct sectioncheck {
> const char *fromsec[20];
> const char *bad_tosec[20];
> --
> 2.0.5

2015-04-13 11:31:58

by Rusty Russell

[permalink] [raw]
Subject: Re: [PATCH 1/7] modpost: add strict white-listing when referencing sections.

Quentin Casasnovas <[email protected]> writes:
> + * @good_tosec: Relocations applied to a section in @fromsec must be
> + * targetting sections in this array (white-list). Can be empty.
> + *
> + * @mistmatch: Type of mismatch.

Spotted a mistake. I almost mist it.

Cheers,
Rusty.