Skip to contentSkip to conversation

agp: info leak in agpioc_info_wrap()

PATCH In review Dan Carpenter 1 participant 2 messages Apr 13, 2013 – May 31, 2013

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 agp: info leak in agpioc_info_wrap()

On 64 bit systems the agp_info struct has a hole between ->agp_mode and ->aper_base. We need to clear it to avoid leaking stack information to userspace.

drivers/char/agp/frontend.c +1 -0
index 2e04433..3fbce33 100644
@@ -729,6 +729,7 @@ static int agpioc_info_wrap(struct agp_file_private *priv, void __user *arg)
 
 	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 |
#1 lore raw

Ping?

regards,
dan carpenter

Quoted 18 lines · Dan Carpenter

On 64 bit systems the agp_info struct has a hole between ->agp_mode and ->aper_base. We need to clear it to avoid leaking stack information to userspace.

drivers/char/agp/frontend.c +1 -0
index 2e04433..3fbce33 100644
@@ -729,6 +729,7 @@ static int agpioc_info_wrap(struct agp_file_private *priv, void __user *arg)
 
 	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 |