]> git.hungrycats.org Git - linux/commitdiff
[PATCH] leaking info on drivers/usb
authorArnaldo Carvalho de Melo <acme@conectiva.com.br>
Thu, 23 Oct 2003 09:58:45 +0000 (02:58 -0700)
committerGreg Kroah-Hartman <greg@kroah.com>
Thu, 23 Oct 2003 09:58:45 +0000 (02:58 -0700)
I'm doing an audit wrt copy_to_user leaking info to userspace, started
with drivers/usb, please apply.

drivers/usb/class/audio.c
drivers/usb/media/vicam.c
drivers/usb/misc/brlvger.c
drivers/usb/serial/io_edgeport.c

index d87ddb18d9bd06988a53ede2811743ebfcd063d5..618c42d4cb287c069fa77b2bf2e5152c66c3c0b6 100644 (file)
@@ -2007,6 +2007,8 @@ static int usb_audio_ioctl_mixdev(struct inode *inode, struct file *file, unsign
   
        if (cmd == SOUND_MIXER_INFO) {
                mixer_info info;
+
+               memset(&info, 0, sizeof(info));
                strncpy(info.id, "USB_AUDIO", sizeof(info.id));
                strncpy(info.name, "USB Audio Class Driver", sizeof(info.name));
                info.modify_counter = ms->modcnt;
@@ -2016,6 +2018,8 @@ static int usb_audio_ioctl_mixdev(struct inode *inode, struct file *file, unsign
        }
        if (cmd == SOUND_OLD_MIXER_INFO) {
                _old_mixer_info info;
+
+               memset(&info, 0, sizeof(info));
                strncpy(info.id, "USB_AUDIO", sizeof(info.id));
                strncpy(info.name, "USB Audio Class Driver", sizeof(info.name));
                if (copy_to_user((void __user *)arg, &info, sizeof(info)))
index d67881bde5f89a9bfe675ba7047b3b3800284ff2..be3ee0b3c8a9fe21d1a34c6b567ead81f71c26c7 100644 (file)
@@ -539,6 +539,7 @@ vicam_ioctl(struct inode *inode, struct file *file, unsigned int ioctlnr, unsign
                        struct video_capability b;
 
                        DBG("VIDIOCGCAP\n");
+                       memset(&b, 0, sizeof(b));
                        strcpy(b.name, "ViCam-based Camera");
                        b.type = VID_TYPE_CAPTURE;
                        b.channels = 1;
index 62a2903136cc52f57aa1c8d324374d7b5d8128ec..067d81730b2e2f5882284ff78bb745e70c5c7e37 100644 (file)
@@ -711,6 +711,7 @@ brlvger_ioctl(struct inode *inode, struct file *file,
        case BRLVGER_GET_INFO: {
                struct brlvger_info vi;
 
+               memset(&vi, 0, sizeof(vi));
                strlcpy(vi.driver_version, DRIVER_VERSION,
                        sizeof(vi.driver_version));
                strlcpy(vi.driver_banner, longbanner,
index 628f4408c6b25f584f6ebe272b35b591849f5a54..d73d1f07ab656069e9f688900a746f3e8e09b059 100644 (file)
@@ -1906,6 +1906,7 @@ static int edge_ioctl (struct usb_serial_port *port, struct file *file, unsigned
 
                case TIOCGICOUNT:
                        cnow = edge_port->icount;
+                       memset(&icount, 0, sizeof(icount));
                        icount.cts = cnow.cts;
                        icount.dsr = cnow.dsr;
                        icount.rng = cnow.rng;