Commit c42d9eee authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'hardening-v6.7-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux

Pull hardening fixes from Kees Cook:

 - stackleak: add declarations for global functions (Arnd Bergmann)

 - gcc-plugins: randstruct: Only warn about true flexible arrays (Kees
   Cook)

 - gcc-plugins: latent_entropy: Fix description typo (Konstantin Runov)

* tag 'hardening-v6.7-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
  gcc-plugins: latent_entropy: Fix typo (args -> argc) in plugin description
  gcc-plugins: randstruct: Only warn about true flexible arrays
  stackleak: add declarations for global functions
parents 86d11b0e 782ce431
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#ifdef CONFIG_GCC_PLUGIN_STACKLEAK #ifdef CONFIG_GCC_PLUGIN_STACKLEAK
#include <asm/stacktrace.h> #include <asm/stacktrace.h>
#include <linux/linkage.h>
/* /*
* The lowest address on tsk's stack which we can plausibly erase. * The lowest address on tsk's stack which we can plausibly erase.
...@@ -76,6 +77,11 @@ static inline void stackleak_task_init(struct task_struct *t) ...@@ -76,6 +77,11 @@ static inline void stackleak_task_init(struct task_struct *t)
# endif # endif
} }
asmlinkage void noinstr stackleak_erase(void);
asmlinkage void noinstr stackleak_erase_on_task_stack(void);
asmlinkage void noinstr stackleak_erase_off_task_stack(void);
void __no_caller_saved_registers noinstr stackleak_track_stack(void);
#else /* !CONFIG_GCC_PLUGIN_STACKLEAK */ #else /* !CONFIG_GCC_PLUGIN_STACKLEAK */
static inline void stackleak_task_init(struct task_struct *t) { } static inline void stackleak_task_init(struct task_struct *t) { }
#endif #endif
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
* if (argc <= 1) * if (argc <= 1)
* printf("%s: no command arguments :(\n", *argv); * printf("%s: no command arguments :(\n", *argv);
* else * else
* printf("%s: %d command arguments!\n", *argv, args - 1); * printf("%s: %d command arguments!\n", *argv, argc - 1);
* } * }
* *
* after: * after:
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
* // perturb_local_entropy() * // perturb_local_entropy()
* } else { * } else {
* local_entropy ^= 3896280633962944730; * local_entropy ^= 3896280633962944730;
* printf("%s: %d command arguments!\n", *argv, args - 1); * printf("%s: %d command arguments!\n", *argv, argc - 1);
* } * }
* *
* // latent_entropy_execute() 4. * // latent_entropy_execute() 4.
......
...@@ -278,8 +278,6 @@ static bool is_flexible_array(const_tree field) ...@@ -278,8 +278,6 @@ static bool is_flexible_array(const_tree field)
{ {
const_tree fieldtype; const_tree fieldtype;
const_tree typesize; const_tree typesize;
const_tree elemtype;
const_tree elemsize;
fieldtype = TREE_TYPE(field); fieldtype = TREE_TYPE(field);
typesize = TYPE_SIZE(fieldtype); typesize = TYPE_SIZE(fieldtype);
...@@ -287,20 +285,12 @@ static bool is_flexible_array(const_tree field) ...@@ -287,20 +285,12 @@ static bool is_flexible_array(const_tree field)
if (TREE_CODE(fieldtype) != ARRAY_TYPE) if (TREE_CODE(fieldtype) != ARRAY_TYPE)
return false; return false;
elemtype = TREE_TYPE(fieldtype);
elemsize = TYPE_SIZE(elemtype);
/* size of type is represented in bits */ /* size of type is represented in bits */
if (typesize == NULL_TREE && TYPE_DOMAIN(fieldtype) != NULL_TREE && if (typesize == NULL_TREE && TYPE_DOMAIN(fieldtype) != NULL_TREE &&
TYPE_MAX_VALUE(TYPE_DOMAIN(fieldtype)) == NULL_TREE) TYPE_MAX_VALUE(TYPE_DOMAIN(fieldtype)) == NULL_TREE)
return true; return true;
if (typesize != NULL_TREE &&
(TREE_CONSTANT(typesize) && (!tree_to_uhwi(typesize) ||
tree_to_uhwi(typesize) == tree_to_uhwi(elemsize))))
return true;
return false; return false;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment