Skip to contentSkip to conversation

paride: potential information leak in pg_read()

PATCH New Dan Carpenter 1 participant 1 message Sep 23, 2011

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

PATCH 1/1 paride: potential information leak in pg_read()

Smatch has a new check for Rosenberg type information leaks where structs are copied to the user with uninitialized stack data in them. i
In this case, the pg_write_hdr struct has a hole in it.

struct pg_write_hdr {

        char                       magic;                /*     0     1 */
        char                       func;                 /*     1     1 */

/* XXX 2 bytes hole, try to pack */
int dlen; /* 4 4 */

drivers/block/paride/pg.c +1 -0
index 6b9a200..a79fb4f 100644
@@ -630,6 +630,7 @@ static ssize_t pg_read(struct file *filp, char __user *buf, size_t count, loff_t
 		if (dev->status & 0x10)
 			return -ETIME;
 
+	memset(&hdr, 0, sizeof(hdr));
 	hdr.magic = PG_MAGIC;
 	hdr.dlen = dev->dlen;
 	copy = 0;