]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/staging/comedi/drivers/usbdux.c
Staging: Eliminate a NULL pointer dereference
[net-next-2.6.git] / drivers / staging / comedi / drivers / usbdux.c
index 8942ae45708db6025a33a245bb45f580598cfa4d..27b4cb2e2ec2924928b44089c92dc61ee9bab87a 100644 (file)
@@ -351,8 +351,7 @@ static int usbdux_ai_stop(struct usbduxsub *this_usbduxsub, int do_unlink)
        int ret = 0;
 
        if (!this_usbduxsub) {
-               dev_err(&this_usbduxsub->interface->dev,
-                       "comedi?: usbdux_ai_stop: this_usbduxsub=NULL!\n");
+               pr_err("comedi?: usbdux_ai_stop: this_usbduxsub=NULL!\n");
                return -EFAULT;
        }
        dev_dbg(&this_usbduxsub->interface->dev, "comedi: usbdux_ai_stop\n");
@@ -793,7 +792,7 @@ static int usbduxsub_stop(struct usbduxsub *usbduxsub)
 }
 
 static int usbduxsub_upload(struct usbduxsub *usbduxsub,
-                           uint8_t * local_transfer_buffer,
+                           uint8_t *local_transfer_buffer,
                            unsigned int startAddr, unsigned int len)
 {
        int errcode;
@@ -825,7 +824,7 @@ static int usbduxsub_upload(struct usbduxsub *usbduxsub,
 #define FIRMWARE_MAX_LEN 0x2000
 
 static int firmwareUpload(struct usbduxsub *usbduxsub,
-                         const u8 * firmwareBinary, int sizeFirmware)
+                         const u8 *firmwareBinary, int sizeFirmware)
 {
        int ret;
        uint8_t *fwBuf;
@@ -835,18 +834,17 @@ static int firmwareUpload(struct usbduxsub *usbduxsub,
 
        if (sizeFirmware > FIRMWARE_MAX_LEN) {
                dev_err(&usbduxsub->interface->dev,
-                       "comedi_: usbdux firmware binary it too large for FX2.\n");
+                       "usbdux firmware binary it too large for FX2.\n");
                return -ENOMEM;
        }
 
        /* we generate a local buffer for the firmware */
-       fwBuf = kzalloc(sizeFirmware, GFP_KERNEL);
+       fwBuf = kmemdup(firmwareBinary, sizeFirmware, GFP_KERNEL);
        if (!fwBuf) {
                dev_err(&usbduxsub->interface->dev,
                        "comedi_: mem alloc for firmware failed\n");
                return -ENOMEM;
        }
-       memcpy(fwBuf, firmwareBinary, sizeFirmware);
 
        ret = usbduxsub_stop(usbduxsub);
        if (ret < 0) {
@@ -1264,8 +1262,8 @@ static int usbdux_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
                            (this_usbduxsub->ai_interval) * 2;
                }
                this_usbduxsub->ai_timer = cmd->scan_begin_arg / (125000 *
-                                                                 (this_usbduxsub->
-                                                                  ai_interval));
+                                                         (this_usbduxsub->
+                                                          ai_interval));
        } else {
                /* interval always 1ms */
                this_usbduxsub->ai_interval = 1;