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:   Fri, 5 Oct 2018 08:54:27 +0200
From:   "Rafael J. Wysocki" <rafael@...nel.org>
To:     Jani Nikula <jani.nikula@...el.com>
Cc:     Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
        intel-gfx <intel-gfx@...ts.freedesktop.org>,
        Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
        "Rafael J. Wysocki" <rafael@...nel.org>
Subject: Re: [PATCH 1/2] sysfs: constify sysfs create/remove files harder

On Thu, Oct 4, 2018 at 4:38 PM Jani Nikula <jani.nikula@...el.com> wrote:
>
> Let the passed in array be const (and thus placed in rodata) instead of
> a mutable array of const pointers.

I'm not sure if the changes guarantee what you want.  If I'm not
mistaken, they just mean that the function itself cannot modify either
the pointer passed to it, or the contents of the array pointed to by
that pointer.  They don't imply the location of the array itself,
though.

As for the changes:

Reviewed-by: Rafael J. Wysocki <rafael.j.wysocki@...el.com>

> Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
> Cc: "Rafael J. Wysocki" <rafael@...nel.org>
> Signed-off-by: Jani Nikula <jani.nikula@...el.com>
> ---
>  fs/sysfs/file.c       | 4 ++--
>  include/linux/sysfs.h | 8 ++++----
>  2 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/fs/sysfs/file.c b/fs/sysfs/file.c
> index 0a7252aecfa5..bb71db63c99c 100644
> --- a/fs/sysfs/file.c
> +++ b/fs/sysfs/file.c
> @@ -334,7 +334,7 @@ int sysfs_create_file_ns(struct kobject *kobj, const struct attribute *attr,
>  }
>  EXPORT_SYMBOL_GPL(sysfs_create_file_ns);
>
> -int sysfs_create_files(struct kobject *kobj, const struct attribute **ptr)
> +int sysfs_create_files(struct kobject *kobj, const struct attribute * const *ptr)
>  {
>         int err = 0;
>         int i;
> @@ -493,7 +493,7 @@ bool sysfs_remove_file_self(struct kobject *kobj, const struct attribute *attr)
>         return ret;
>  }
>
> -void sysfs_remove_files(struct kobject *kobj, const struct attribute **ptr)
> +void sysfs_remove_files(struct kobject *kobj, const struct attribute * const *ptr)
>  {
>         int i;
>         for (i = 0; ptr[i]; i++)
> diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h
> index 987cefa337de..786816cf4aa5 100644
> --- a/include/linux/sysfs.h
> +++ b/include/linux/sysfs.h
> @@ -234,7 +234,7 @@ int __must_check sysfs_create_file_ns(struct kobject *kobj,
>                                       const struct attribute *attr,
>                                       const void *ns);
>  int __must_check sysfs_create_files(struct kobject *kobj,
> -                                  const struct attribute **attr);
> +                                  const struct attribute * const *attr);
>  int __must_check sysfs_chmod_file(struct kobject *kobj,
>                                   const struct attribute *attr, umode_t mode);
>  struct kernfs_node *sysfs_break_active_protection(struct kobject *kobj,
> @@ -243,7 +243,7 @@ void sysfs_unbreak_active_protection(struct kernfs_node *kn);
>  void sysfs_remove_file_ns(struct kobject *kobj, const struct attribute *attr,
>                           const void *ns);
>  bool sysfs_remove_file_self(struct kobject *kobj, const struct attribute *attr);
> -void sysfs_remove_files(struct kobject *kobj, const struct attribute **attr);
> +void sysfs_remove_files(struct kobject *kobj, const struct attribute * const *attr);
>
>  int __must_check sysfs_create_bin_file(struct kobject *kobj,
>                                        const struct bin_attribute *attr);
> @@ -342,7 +342,7 @@ static inline int sysfs_create_file_ns(struct kobject *kobj,
>  }
>
>  static inline int sysfs_create_files(struct kobject *kobj,
> -                                   const struct attribute **attr)
> +                                   const struct attribute * const *attr)
>  {
>         return 0;
>  }
> @@ -377,7 +377,7 @@ static inline bool sysfs_remove_file_self(struct kobject *kobj,
>  }
>
>  static inline void sysfs_remove_files(struct kobject *kobj,
> -                                    const struct attribute **attr)
> +                                    const struct attribute * const *attr)
>  {
>  }
>
> --
> 2.11.0
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ