* [PATCH 0/8] replace memset by memzero_explicit
@ 2014-11-30 16:59 Julia Lawall
0 siblings, 0 replies; 5+ messages in thread
From: Julia Lawall @ 2014-11-30 16:59 UTC (permalink / raw)
To: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
Cc: dborkman-H+wXaHxf7aLQT0dZR+AlfA,
herbert-lOAM2aK0SrRLBo1qDEOMRrpzq4S04n8Q,
kernel-janitors-u79uwXL29TY76Z2rM5mHXA,
linux-raid-u79uwXL29TY76Z2rM5mHXA,
dm-devel-H+wXaHxf7aLQT0dZR+AlfA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-crypto-u79uwXL29TY76Z2rM5mHXA,
sparclinux-u79uwXL29TY76Z2rM5mHXA,
linux-cifs-u79uwXL29TY76Z2rM5mHXA,
samba-technical-w/Ol4Ecudpl8XjKLYN78aQ,
linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ,
linux-usb-u79uwXL29TY76Z2rM5mHXA
Memset on a local variable may be removed when it is called just before the
variable goes out of scope. Using memzero_explicit defeats this
optimization. The complete semantic patch that makes this change is as
follows: (http://coccinelle.lip6.fr/)
// <smpl>
@@
identifier x;
local idexpression e;
type T,T1;
@@
{
... when any
T x[...];
... when any
when exists
(
e = (T1)x
|
e = (T1)&x[0]
)
... when any
when exists
- memset
+ memzero_explicit
(x,
-0,
...)
... when != x
when != e
when strict
}
@@
identifier i,x;
local idexpression e;
type T;
@@
{
... when any
struct i x;
... when any
when exists
e = (T)&x
... when any
when exists
- memset
+ memzero_explicit
(&x,
-0,
...)
... when != x
when != e
when strict
}
// ------------------------------------------------------------------------
@@
identifier x;
type T,T1;
expression e;
@@
{
... when any
T x[...];
... when any
when exists
when != e = (T1)x
when != e = (T1)&x[0]
- memset
+ memzero_explicit
(x,
-0,
...)
... when != x
when strict
}
@@
identifier i,x;
expression e;
type T;
@@
{
... when any
struct i x;
... when any
when exists
when != e = (T)&x
- memset
+ memzero_explicit
(&x,
-0,
...)
... when != x
when strict
}
// </smpl>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 0/8] replace memset by memzero_explicit
@ 2014-11-30 17:03 Julia Lawall
2014-11-30 17:03 ` [PATCH 5/8 v2] dm: " Julia Lawall
0 siblings, 1 reply; 5+ messages in thread
From: Julia Lawall @ 2014-11-30 17:03 UTC (permalink / raw)
To: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
Cc: kernel-janitors-u79uwXL29TY76Z2rM5mHXA,
linux-raid-u79uwXL29TY76Z2rM5mHXA,
dm-devel-H+wXaHxf7aLQT0dZR+AlfA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-crypto-u79uwXL29TY76Z2rM5mHXA,
sparclinux-u79uwXL29TY76Z2rM5mHXA,
linux-cifs-u79uwXL29TY76Z2rM5mHXA,
samba-technical-w/Ol4Ecudpl8XjKLYN78aQ,
linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ,
linux-usb-u79uwXL29TY76Z2rM5mHXA
Memset on a local variable may be removed when it is called just before the
variable goes out of scope. Using memzero_explicit defeats this
optimization. The complete semantic patch that makes this change is as
follows: (http://coccinelle.lip6.fr/)
// <smpl>
@@
identifier x;
local idexpression e;
type T,T1;
@@
{
... when any
T x[...];
... when any
when exists
(
e = (T1)x
|
e = (T1)&x[0]
)
... when any
when exists
- memset
+ memzero_explicit
(x,
-0,
...)
... when != x
when != e
when strict
}
@@
identifier i,x;
local idexpression e;
type T;
@@
{
... when any
struct i x;
... when any
when exists
e = (T)&x
... when any
when exists
- memset
+ memzero_explicit
(&x,
-0,
...)
... when != x
when != e
when strict
}
// ------------------------------------------------------------------------
@@
identifier x;
type T,T1;
expression e;
@@
{
... when any
T x[...];
... when any
when exists
when != e = (T1)x
when != e = (T1)&x[0]
- memset
+ memzero_explicit
(x,
-0,
...)
... when != x
when strict
}
@@
identifier i,x;
expression e;
type T;
@@
{
... when any
struct i x;
... when any
when exists
when != e = (T)&x
- memset
+ memzero_explicit
(&x,
-0,
...)
... when != x
when strict
}
// </smpl>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 5/8 v2] dm: replace memset by memzero_explicit
2014-11-30 17:03 [PATCH 0/8] replace memset by memzero_explicit Julia Lawall
@ 2014-11-30 17:03 ` Julia Lawall
2014-12-01 21:03 ` Milan Broz
0 siblings, 1 reply; 5+ messages in thread
From: Julia Lawall @ 2014-11-30 17:03 UTC (permalink / raw)
To: Alasdair Kergon
Cc: kernel-janitors, Mike Snitzer, dm-devel, Neil Brown, linux-raid,
linux-kernel
From: Julia Lawall <Julia.Lawall@lip6.fr>
Memset on a local variable may be removed when it is called just before the
variable goes out of scope. Using memzero_explicit defeats this
optimization. A simplified version of the semantic patch that makes this
change is as follows: (http://coccinelle.lip6.fr/)
// <smpl>
@@
identifier x;
type T;
@@
{
... when any
T x[...];
... when any
when exists
- memset
+ memzero_explicit
(x,
-0,
...)
... when != x
when strict
}
// </smpl>
This change was suggested by Daniel Borkmann <dborkman@redhat.com>
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
---
Daniel Borkmann suggested that these patches could go through Herbert Xu's
cryptodev tree.
v2: fixed email address
drivers/md/dm-crypt.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/md/dm-crypt.c b/drivers/md/dm-crypt.c
index fc93b93..08981be 100644
--- a/drivers/md/dm-crypt.c
+++ b/drivers/md/dm-crypt.c
@@ -705,7 +705,7 @@ static int crypt_iv_tcw_whitening(struct crypt_config *cc,
for (i = 0; i < ((1 << SECTOR_SHIFT) / 8); i++)
crypto_xor(data + i * 8, buf, 8);
out:
- memset(buf, 0, sizeof(buf));
+ memzero_explicit(buf, sizeof(buf));
return r;
}
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 5/8 v2] dm: replace memset by memzero_explicit
2014-11-30 17:03 ` [PATCH 5/8 v2] dm: " Julia Lawall
@ 2014-12-01 21:03 ` Milan Broz
2014-12-01 23:00 ` Mike Snitzer
0 siblings, 1 reply; 5+ messages in thread
From: Milan Broz @ 2014-12-01 21:03 UTC (permalink / raw)
To: Mike Snitzer
Cc: Julia Lawall, Alasdair Kergon, kernel-janitors, dm-devel,
Neil Brown, linux-raid, linux-kernel
On 11/30/2014 06:03 PM, Julia Lawall wrote:
> From: Julia Lawall <Julia.Lawall@lip6.fr>
>
> Memset on a local variable may be removed when it is called just before the
> variable goes out of scope. Using memzero_explicit defeats this
> optimization. A simplified version of the semantic patch that makes this
> change is as follows: (http://coccinelle.lip6.fr/)
Ack, but I submitted the same patch a week ago....
https://www.redhat.com/archives/dm-devel/2014-November/msg00084.html
Mike, please could you add this to linux-next tree or you want this
to go through Herbert's tree?
(I do not think it is good idea for DM patches.)
Thanks,
Milan
>
> // <smpl>
> @@
> identifier x;
> type T;
> @@
>
> {
> ... when any
> T x[...];
> ... when any
> when exists
> - memset
> + memzero_explicit
> (x,
> -0,
> ...)
> ... when != x
> when strict
> }
> // </smpl>
>
> This change was suggested by Daniel Borkmann <dborkman@redhat.com>
>
> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
>
> ---
> Daniel Borkmann suggested that these patches could go through Herbert Xu's
> cryptodev tree.
>
> v2: fixed email address
>
> drivers/md/dm-crypt.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/md/dm-crypt.c b/drivers/md/dm-crypt.c
> index fc93b93..08981be 100644
> --- a/drivers/md/dm-crypt.c
> +++ b/drivers/md/dm-crypt.c
> @@ -705,7 +705,7 @@ static int crypt_iv_tcw_whitening(struct crypt_config *cc,
> for (i = 0; i < ((1 << SECTOR_SHIFT) / 8); i++)
> crypto_xor(data + i * 8, buf, 8);
> out:
> - memset(buf, 0, sizeof(buf));
> + memzero_explicit(buf, sizeof(buf));
> return r;
> }
>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 5/8 v2] dm: replace memset by memzero_explicit
2014-12-01 21:03 ` Milan Broz
@ 2014-12-01 23:00 ` Mike Snitzer
0 siblings, 0 replies; 5+ messages in thread
From: Mike Snitzer @ 2014-12-01 23:00 UTC (permalink / raw)
To: Milan Broz
Cc: kernel-janitors, linux-kernel, linux-raid, Julia Lawall, dm-devel,
Alasdair Kergon
On Mon, Dec 01 2014 at 4:03pm -0500,
Milan Broz <gmazyland@gmail.com> wrote:
> On 11/30/2014 06:03 PM, Julia Lawall wrote:
> > From: Julia Lawall <Julia.Lawall@lip6.fr>
> >
> > Memset on a local variable may be removed when it is called just before the
> > variable goes out of scope. Using memzero_explicit defeats this
> > optimization. A simplified version of the semantic patch that makes this
> > change is as follows: (http://coccinelle.lip6.fr/)
>
> Ack, but I submitted the same patch a week ago....
>
> https://www.redhat.com/archives/dm-devel/2014-November/msg00084.html
>
> Mike, please could you add this to linux-next tree or you want this
> to go through Herbert's tree?
> (I do not think it is good idea for DM patches.)
I staged it in linux-next for 3.19 inclusion, see:
https://git.kernel.org/cgit/linux/kernel/git/device-mapper/linux-dm.git/commit/?h=dm-for-3.19&id=a722201f9075b28be140bc13f8ec07bf6a42edd4
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2014-12-01 23:00 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-11-30 17:03 [PATCH 0/8] replace memset by memzero_explicit Julia Lawall
2014-11-30 17:03 ` [PATCH 5/8 v2] dm: " Julia Lawall
2014-12-01 21:03 ` Milan Broz
2014-12-01 23:00 ` Mike Snitzer
-- strict thread matches above, loose matches on Subject: below --
2014-11-30 16:59 [PATCH 0/8] " Julia Lawall
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).