If "nd->nd_vpd_len" is less than 512 then the last part of the
"vpd.vpd_data" has uninitialized stack information.  We need to clear it
before copying the buffer to user space.

Signed-off-by: Dan Carpenter <[email protected]>

diff --git a/drivers/staging/dgrp/dgrp_dpa_ops.c 
b/drivers/staging/dgrp/dgrp_dpa_ops.c
index 43209c1..d99c227 100644
--- a/drivers/staging/dgrp/dgrp_dpa_ops.c
+++ b/drivers/staging/dgrp/dgrp_dpa_ops.c
@@ -408,6 +408,7 @@ static long dgrp_dpa_ioctl(struct file *file, unsigned int 
cmd,
 
 
        case DIGI_GETVPD:
+               memset(&vpd, 0, sizeof(vpd));
                if (nd->nd_vpd_len > 0) {
                        vpd.vpd_len = nd->nd_vpd_len;
                        memcpy(&vpd.vpd_data, &nd->nd_vpd, nd->nd_vpd_len);
_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel

Reply via email to