lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 6 Nov 2017 16:50:22 +0000
From:   Dave Martin <Dave.Martin@....com>
To:     Arnd Bergmann <arnd@...db.de>
Cc:     Catalin Marinas <Catalin.Marinas@....com>,
        Will Deacon <Will.Deacon@....com>,
        "Luis R. Rodriguez" <mcgrof@...nel.org>,
        Kees Cook <keescook@...omium.org>,
        Alex Bennée <alex.bennee@...aro.org>,
        "Eric W. Biederman" <ebiederm@...ssion.com>,
        Andrew Morton <akpm@...ux-foundation.org>,
        Thomas Gleixner <tglx@...utronix.de>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
        "linux-fsdevel@...r.kernel.org" <linux-fsdevel@...r.kernel.org>
Subject: Re: [PATCH] sysctl: add register_sysctl() dummy helper

On Mon, Nov 06, 2017 at 01:36:40PM +0000, Arnd Bergmann wrote:
> The register_sysctl() function has been around for five years with commit
> fea478d4101a ("sysctl: Add register_sysctl for normal sysctl users")
> but now that arm64 started using it, I ran into a compile error:
> 
> arch/arm64/kernel/armv8_deprecated.c: In function 'register_insn_emulation_sysctl':
> arch/arm64/kernel/armv8_deprecated.c:257:2: error: implicit declaration of function 'register_sysctl'

Hmmm, looks like I missed this combination in testing.

I wonder whether ARMV8_DEPRECATED without SYSCTL is really a good idea
though: in that config, we build a lot of dead code and leak some
memory today.  The default emulation is still potentially useful, but
all the support for runtime twiddling of the emulation modes becomes
useless.

For parallel reasons, the SVE sysctl stuff is protected by #ifdef
CONFIG_SYSCTL, which is why I didn't get a similar splat there.


So, although this patch is superficially sensible, it may tend to hide
bugs: code that calls register_sysctl() when CONFIG_SYSCTL=n is
suspicious and probably needs review... no?

Cheers
---Dave

> This adds a inline function like we already have for register_sysctl_paths()
> and register_sysctl_table().
> 
> Fixes: 38b9aeb32fa7 ("arm64: Port deprecated instruction emulation to new sysctl interface")
> Signed-off-by: Arnd Bergmann <arnd@...db.de>
> ---
> This should probably get merged through the arm64 tree to avoid
> bisection problems.
> ---
>  include/linux/sysctl.h | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h
> index fabe15e51c56..992bc9948232 100644
> --- a/include/linux/sysctl.h
> +++ b/include/linux/sysctl.h
> @@ -216,6 +216,11 @@ static inline struct ctl_table_header *register_sysctl_paths(
>  	return NULL;
>  }
>  
> +static inline struct ctl_table_header *register_sysctl(const char *path, struct ctl_table *table)
> +{
> +	return NULL;
> +}
> +
>  static inline void unregister_sysctl_table(struct ctl_table_header * table)
>  {
>  }
> -- 
> 2.9.0

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ