2008-03-24 21:26:16 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-04-09 15:54:47 +02:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-12-31 21:26:23 +05:30
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
|
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
|
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
|
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
|
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-06-02 15:46:51 +10:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-04-09 15:54:47 +02:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
2017-10-18 08:00:36 +01:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
|
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-04-09 15:54:47 +02:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
|
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
2008-06-02 15:46:51 +10:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
2017-10-18 08:00:36 +01:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
crypto: memzero_explicit - make sure to clear out sensitive data
Recently, in commit 13aa93c70e71 ("random: add and use memzero_explicit()
for clearing data"), we have found that GCC may optimize some memset()
cases away when it detects a stack variable is not being used anymore
and going out of scope. This can happen, for example, in cases when we
are clearing out sensitive information such as keying material or any
e.g. intermediate results from crypto computations, etc.
With the help of Coccinelle, we can figure out and fix such occurences
in the crypto subsytem as well. Julia Lawall provided the following
Coccinelle program:
@@
type T;
identifier x;
@@
T x;
... when exists
when any
-memset
+memzero_explicit
(&x,
-0,
...)
... when != x
when strict
@@
type T;
identifier x;
@@
T x[...];
... when exists
when any
-memset
+memzero_explicit
(x,
-0,
...)
... when != x
when strict
Therefore, make use of the drop-in replacement memzero_explicit() for
exactly such cases instead of using memset().
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
Cc: Julia Lawall <julia.lawall@lip6.fr>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: Theodore Ts'o <tytso@mit.edu>
Cc: Hannes Frederic Sowa <hannes@stressinduktion.org>
Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
2014-09-07 23:23:38 +02:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
|
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-10-28 09:52:19 -07:00
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
|
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
|
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-10-28 09:51:13 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
2015-01-16 19:38:17 +11:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-12 13:17:48 +08:00
|
|
|
|
2008-03-24 21:26:16 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-11-24 16:32:38 -08:00
|
|
|
|