2020-05-06 01:57:07

by Siddharth Gupta

[permalink] [raw]
Subject: [PATCH v3] scripts: headers_install: Exit with error on config leak

Misuse of CONFIG_* in UAPI headers should result in an error. These config
options can be set in userspace by the user application which includes
these headers to control the APIs and structures being used in a kernel
which supports multiple targets.

Signed-off-by: Siddharth Gupta <[email protected]>
---
scripts/headers_install.sh | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/scripts/headers_install.sh b/scripts/headers_install.sh
index a07668a..94a8335 100755
--- a/scripts/headers_install.sh
+++ b/scripts/headers_install.sh
@@ -64,7 +64,7 @@ configs=$(sed -e '
d
' $OUTFILE)

-# The entries in the following list are not warned.
+# The entries in the following list do not result in an error.
# Please do not add a new entry. This list is only for existing ones.
# The list will be reduced gradually, and deleted eventually. (hopefully)
#
@@ -98,18 +98,19 @@ include/uapi/linux/raw.h:CONFIG_MAX_RAW_DEVS

for c in $configs
do
- warn=1
+ leak_error=1

for ignore in $config_leak_ignores
do
if echo "$INFILE:$c" | grep -q "$ignore$"; then
- warn=
+ leak_error=
break
fi
done

- if [ "$warn" = 1 ]; then
- echo "warning: $INFILE: leak $c to user-space" >&2
+ if [ "$leak_error" = 1 ]; then
+ echo "error: $INFILE: leak $c to user-space" >&2
+ exit 1
fi
done

--
Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project


2020-05-08 05:43:01

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH v3] scripts: headers_install: Exit with error on config leak

On Wed, May 6, 2020 at 10:53 AM Siddharth Gupta <[email protected]> wrote:
>
> Misuse of CONFIG_* in UAPI headers should result in an error. These config
> options can be set in userspace by the user application which includes
> these headers to control the APIs and structures being used in a kernel
> which supports multiple targets.
>
> Signed-off-by: Siddharth Gupta <[email protected]>

Applied to linux-kbuild. Thanks.

> ---
> scripts/headers_install.sh | 11 ++++++-----
> 1 file changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/scripts/headers_install.sh b/scripts/headers_install.sh
> index a07668a..94a8335 100755
> --- a/scripts/headers_install.sh
> +++ b/scripts/headers_install.sh
> @@ -64,7 +64,7 @@ configs=$(sed -e '
> d
> ' $OUTFILE)
>
> -# The entries in the following list are not warned.
> +# The entries in the following list do not result in an error.
> # Please do not add a new entry. This list is only for existing ones.
> # The list will be reduced gradually, and deleted eventually. (hopefully)
> #
> @@ -98,18 +98,19 @@ include/uapi/linux/raw.h:CONFIG_MAX_RAW_DEVS
>
> for c in $configs
> do
> - warn=1
> + leak_error=1
>
> for ignore in $config_leak_ignores
> do
> if echo "$INFILE:$c" | grep -q "$ignore$"; then
> - warn=
> + leak_error=
> break
> fi
> done
>
> - if [ "$warn" = 1 ]; then
> - echo "warning: $INFILE: leak $c to user-space" >&2
> + if [ "$leak_error" = 1 ]; then
> + echo "error: $INFILE: leak $c to user-space" >&2
> + exit 1
> fi
> done
>
> --
> Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
> a Linux Foundation Collaborative Project



--
Best Regards
Masahiro Yamada