* [patch] agp: potential info leak in compat_agpioc_info_wrap()
@ 2011-09-23 6:19 Dan Carpenter
2011-09-23 7:04 ` Eric Dumazet
0 siblings, 1 reply; 3+ messages in thread
From: Dan Carpenter @ 2011-09-23 6:19 UTC (permalink / raw)
To: David Airlie; +Cc: linux-kernel, kernel-janitors
Smatch has a new check for Rosenberg type information leaks where
structs are copied to the user with uninitialized stack data in them.
The agp_info32 struct has a 4 byte hole in it so we need to clear
that before copying it to userspace.
struct agp_info32 {
struct agp_version version; /* 0 0 */
/* XXX 4 bytes hole, try to pack */
u32 bridge_id; /* 4 4 */
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
diff --git a/drivers/char/agp/compat_ioctl.c b/drivers/char/agp/compat_ioctl.c
index a48e05b..0509497 100644
--- a/drivers/char/agp/compat_ioctl.c
+++ b/drivers/char/agp/compat_ioctl.c
@@ -42,6 +42,8 @@ static int compat_agpioc_info_wrap(struct agp_file_private *priv, void __user *a
agp_copy_info(agp_bridge, &kerninfo);
+ memset(&userinfo, 0, sizeof(userinfo));
+
userinfo.version.major = kerninfo.version.major;
userinfo.version.minor = kerninfo.version.minor;
userinfo.bridge_id = kerninfo.device->vendor |
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [patch] agp: potential info leak in compat_agpioc_info_wrap()
2011-09-23 6:19 [patch] agp: potential info leak in compat_agpioc_info_wrap() Dan Carpenter
@ 2011-09-23 7:04 ` Eric Dumazet
2011-09-23 7:30 ` Dan Carpenter
0 siblings, 1 reply; 3+ messages in thread
From: Eric Dumazet @ 2011-09-23 7:04 UTC (permalink / raw)
To: Dan Carpenter; +Cc: David Airlie, linux-kernel, kernel-janitors
Le vendredi 23 septembre 2011 à 09:19 +0300, Dan Carpenter a écrit :
> Smatch has a new check for Rosenberg type information leaks where
> structs are copied to the user with uninitialized stack data in them.
>
Hmm, automatic tools should not send patches without human check.
> The agp_info32 struct has a 4 byte hole in it so we need to clear
> that before copying it to userspace.
>
> struct agp_info32 {
> struct agp_version version; /* 0 0 */
>
> /* XXX 4 bytes hole, try to pack */
>
This makes no sense :
Why should we have a 32bit hole before an u32 field ?
Which arch mandates this ?
> u32 bridge_id; /* 4 4 */
>
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
>
> diff --git a/drivers/char/agp/compat_ioctl.c b/drivers/char/agp/compat_ioctl.c
> index a48e05b..0509497 100644
> --- a/drivers/char/agp/compat_ioctl.c
> +++ b/drivers/char/agp/compat_ioctl.c
> @@ -42,6 +42,8 @@ static int compat_agpioc_info_wrap(struct agp_file_private *priv, void __user *a
>
> agp_copy_info(agp_bridge, &kerninfo);
>
> + memset(&userinfo, 0, sizeof(userinfo));
> +
> userinfo.version.major = kerninfo.version.major;
> userinfo.version.minor = kerninfo.version.minor;
> userinfo.bridge_id = kerninfo.device->vendor |
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [patch] agp: potential info leak in compat_agpioc_info_wrap()
2011-09-23 7:04 ` Eric Dumazet
@ 2011-09-23 7:30 ` Dan Carpenter
0 siblings, 0 replies; 3+ messages in thread
From: Dan Carpenter @ 2011-09-23 7:30 UTC (permalink / raw)
To: Eric Dumazet; +Cc: David Airlie, linux-kernel, kernel-janitors
On Fri, Sep 23, 2011 at 09:04:15AM +0200, Eric Dumazet wrote:
> > The agp_info32 struct has a 4 byte hole in it so we need to clear
> > that before copying it to userspace.
> >
> > struct agp_info32 {
> > struct agp_version version; /* 0 0 */
> >
> > /* XXX 4 bytes hole, try to pack */
> >
>
> This makes no sense :
>
> Why should we have a 32bit hole before an u32 field ?
>
Crap. You're right. It saw the agp_version struct as a hole.
Sorry for the noise.
regards,
dan carpenter
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2011-09-23 7:30 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-09-23 6:19 [patch] agp: potential info leak in compat_agpioc_info_wrap() Dan Carpenter
2011-09-23 7:04 ` Eric Dumazet
2011-09-23 7:30 ` Dan Carpenter
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox