iio: accel: sca3000: memory corruption in sca3000_read_first_n_hw_rb()
Subsystems (4)
PATCH 1/1 iio: accel: sca3000: memory corruption in sca3000_read_first_n_hw_rb()
"num_read" is in byte units but we are write u16s so we end up write twice as much as intended.
drivers/staging/iio/accel/sca3000_ring.c +1 -1
@@ -116,7 +116,7 @@ static int sca3000_read_first_n_hw_rb(struct iio_buffer *r,if (ret) goto error_ret; -for (i =0 ; i < num_read; i++) +for (i =0 ; i < num_read /sizeof (u16); i++) *(((u16 *)rx) + i) =be16_to_cpup ((__be16 *)rx + i);if (copy_to_user (buf, rx, num_read))
Jonathan Cameron
maintainerQuoted 4 lines · Dan Carpenter
"
num_read" is in byte units but we are write u16s so we end up write twice as much as intended.Signed-off-by Dan Carpenter <[email protected]>
Hi Dan,
This is fine. Given it's an old bug, Greg is not going to take this
sort of fix until after the merge window. I won't be doing another
pull to him to go in during the merge window. Hence fastest route will be as a fix post 4.3-rc1.
Give me a poke if I haven't picked it up and sent it on by rc2 or so.
Thanks and good find.
Jonathan
Quoted 19 lines
drivers/staging/iio/accel/sca3000_ring.c +1
-2@@ -116,7 +116,7 @@ static int sca3000_read_first_n_hw_rb(struct iio_buffer *r,if (ret) goto error_ret; -for (i =0 ; i < num_read; i++) +for (i =0 ; i < num_read /sizeof (u16); i++) *(((u16 *)rx) + i) =be16_to_cpup ((__be16 *)rx + i);if (copy_to_user (buf, rx, num_read)) --To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Jonathan Cameron
maintainerQuoted 12 lines · Jonathan Cameron
Quoted 4 lines · Dan Carpenter
"
num_read" is in byte units but we are write u16s so we end up write twice as much as intended.Signed-off-by Dan Carpenter <[email protected]>Hi Dan,
This is fine. Given it's an old bug, Greg is not going to take this
sort of fix until after the merge window. I won't be doing another
pull to him to go in during the merge window. Hence fastest route will be as a fix post 4.3-rc1.
Quoted 5 lines
Give me a poke if I haven't picked it up and sent it on by rc2 or so.
Thanks and good find.
Jonathan
Nearly forgot this one!
Anyhow, applied to the fixes-togreg branch of iio.git and marked for stable.
Jonathan
Quoted 25 lines
Quoted 15 lines
drivers/staging/iio/accel/sca3000_ring.c +1
-2@@ -116,7 +116,7 @@ static int sca3000_read_first_n_hw_rb(struct iio_buffer *r,if (ret) goto error_ret; -for (i =0 ; i < num_read; i++) +for (i =0 ; i < num_read /sizeof (u16); i++) *(((u16 *)rx) + i) =be16_to_cpup ((__be16 *)rx + i);if (copy_to_user (buf, rx, num_read)) --Quoted 4 lines
To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html