public inbox for kernel-janitors@vger.kernel.org
 help / color / mirror / Atom feed
* [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