Commit 5b6271bd authored by Dmitry Torokhov's avatar Dmitry Torokhov

Input: make name, phys and uniq be 'const char *' because once

       set noone should attempt to change them.
Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
parent f96b434d
...@@ -1228,14 +1228,7 @@ static int __devinit sonypi_probe(void) ...@@ -1228,14 +1228,7 @@ static int __devinit sonypi_probe(void)
sonypi_device.input_jog_dev.keybit[LONG(BTN_MOUSE)] = sonypi_device.input_jog_dev.keybit[LONG(BTN_MOUSE)] =
BIT(BTN_MIDDLE); BIT(BTN_MIDDLE);
sonypi_device.input_jog_dev.relbit[0] = BIT(REL_WHEEL); sonypi_device.input_jog_dev.relbit[0] = BIT(REL_WHEEL);
sonypi_device.input_jog_dev.name = sonypi_device.input_jog_dev.name = SONYPI_JOG_INPUTNAME;
kmalloc(sizeof(SONYPI_JOG_INPUTNAME), GFP_KERNEL);
if (!sonypi_device.input_jog_dev.name) {
printk(KERN_ERR "sonypi: kmalloc failed\n");
ret = -ENOMEM;
goto out_inkmallocinput1;
}
sprintf(sonypi_device.input_jog_dev.name, SONYPI_JOG_INPUTNAME);
sonypi_device.input_jog_dev.id.bustype = BUS_ISA; sonypi_device.input_jog_dev.id.bustype = BUS_ISA;
sonypi_device.input_jog_dev.id.vendor = PCI_VENDOR_ID_SONY; sonypi_device.input_jog_dev.id.vendor = PCI_VENDOR_ID_SONY;
...@@ -1249,14 +1242,7 @@ static int __devinit sonypi_probe(void) ...@@ -1249,14 +1242,7 @@ static int __devinit sonypi_probe(void)
if (sonypi_inputkeys[i].inputev) if (sonypi_inputkeys[i].inputev)
set_bit(sonypi_inputkeys[i].inputev, set_bit(sonypi_inputkeys[i].inputev,
sonypi_device.input_key_dev.keybit); sonypi_device.input_key_dev.keybit);
sonypi_device.input_key_dev.name = sonypi_device.input_key_dev.name = SONYPI_KEY_INPUTNAME;
kmalloc(sizeof(SONYPI_KEY_INPUTNAME), GFP_KERNEL);
if (!sonypi_device.input_key_dev.name) {
printk(KERN_ERR "sonypi: kmalloc failed\n");
ret = -ENOMEM;
goto out_inkmallocinput2;
}
sprintf(sonypi_device.input_key_dev.name, SONYPI_KEY_INPUTNAME);
sonypi_device.input_key_dev.id.bustype = BUS_ISA; sonypi_device.input_key_dev.id.bustype = BUS_ISA;
sonypi_device.input_key_dev.id.vendor = PCI_VENDOR_ID_SONY; sonypi_device.input_key_dev.id.vendor = PCI_VENDOR_ID_SONY;
...@@ -1314,11 +1300,7 @@ out_platformdev: ...@@ -1314,11 +1300,7 @@ out_platformdev:
kfifo_free(sonypi_device.input_fifo); kfifo_free(sonypi_device.input_fifo);
out_infifo: out_infifo:
input_unregister_device(&sonypi_device.input_key_dev); input_unregister_device(&sonypi_device.input_key_dev);
kfree(sonypi_device.input_key_dev.name);
out_inkmallocinput2:
input_unregister_device(&sonypi_device.input_jog_dev); input_unregister_device(&sonypi_device.input_jog_dev);
kfree(sonypi_device.input_jog_dev.name);
out_inkmallocinput1:
free_irq(sonypi_device.irq, sonypi_irq); free_irq(sonypi_device.irq, sonypi_irq);
out_reqirq: out_reqirq:
release_region(sonypi_device.ioport1, sonypi_device.region_size); release_region(sonypi_device.ioport1, sonypi_device.region_size);
...@@ -1345,9 +1327,7 @@ static void __devexit sonypi_remove(void) ...@@ -1345,9 +1327,7 @@ static void __devexit sonypi_remove(void)
if (useinput) { if (useinput) {
input_unregister_device(&sonypi_device.input_key_dev); input_unregister_device(&sonypi_device.input_key_dev);
kfree(sonypi_device.input_key_dev.name);
input_unregister_device(&sonypi_device.input_jog_dev); input_unregister_device(&sonypi_device.input_jog_dev);
kfree(sonypi_device.input_jog_dev.name);
kfifo_free(sonypi_device.input_fifo); kfifo_free(sonypi_device.input_fifo);
} }
......
...@@ -251,6 +251,7 @@ static int uinput_alloc_device(struct file *file, const char __user *buffer, siz ...@@ -251,6 +251,7 @@ static int uinput_alloc_device(struct file *file, const char __user *buffer, siz
struct uinput_user_dev *user_dev; struct uinput_user_dev *user_dev;
struct input_dev *dev; struct input_dev *dev;
struct uinput_device *udev; struct uinput_device *udev;
char *name;
int size; int size;
int retval; int retval;
...@@ -274,13 +275,13 @@ static int uinput_alloc_device(struct file *file, const char __user *buffer, siz ...@@ -274,13 +275,13 @@ static int uinput_alloc_device(struct file *file, const char __user *buffer, siz
kfree(dev->name); kfree(dev->name);
size = strnlen(user_dev->name, UINPUT_MAX_NAME_SIZE) + 1; size = strnlen(user_dev->name, UINPUT_MAX_NAME_SIZE) + 1;
dev->name = kmalloc(size, GFP_KERNEL); dev->name = name = kmalloc(size, GFP_KERNEL);
if (!dev->name) { if (!name) {
retval = -ENOMEM; retval = -ENOMEM;
goto exit; goto exit;
} }
strlcpy(name, user_dev->name, size);
strlcpy(dev->name, user_dev->name, size);
dev->id.bustype = user_dev->id.bustype; dev->id.bustype = user_dev->id.bustype;
dev->id.vendor = user_dev->id.vendor; dev->id.vendor = user_dev->id.vendor;
dev->id.product = user_dev->id.product; dev->id.product = user_dev->id.product;
...@@ -397,6 +398,7 @@ static int uinput_ioctl(struct inode *inode, struct file *file, unsigned int cmd ...@@ -397,6 +398,7 @@ static int uinput_ioctl(struct inode *inode, struct file *file, unsigned int cmd
struct uinput_ff_erase ff_erase; struct uinput_ff_erase ff_erase;
struct uinput_request *req; struct uinput_request *req;
int length; int length;
char *phys;
udev = file->private_data; udev = file->private_data;
...@@ -494,20 +496,19 @@ static int uinput_ioctl(struct inode *inode, struct file *file, unsigned int cmd ...@@ -494,20 +496,19 @@ static int uinput_ioctl(struct inode *inode, struct file *file, unsigned int cmd
retval = -EFAULT; retval = -EFAULT;
break; break;
} }
if (NULL != udev->dev->phys)
kfree(udev->dev->phys); kfree(udev->dev->phys);
udev->dev->phys = kmalloc(length, GFP_KERNEL); udev->dev->phys = phys = kmalloc(length, GFP_KERNEL);
if (!udev->dev->phys) { if (!phys) {
retval = -ENOMEM; retval = -ENOMEM;
break; break;
} }
if (copy_from_user(udev->dev->phys, p, length)) { if (copy_from_user(phys, p, length)) {
retval = -EFAULT;
kfree(udev->dev->phys);
udev->dev->phys = NULL; udev->dev->phys = NULL;
kfree(phys);
retval = -EFAULT;
break; break;
} }
udev->dev->phys[length - 1] = '\0'; phys[length - 1] = '\0';
break; break;
case UI_BEGIN_FF_UPLOAD: case UI_BEGIN_FF_UPLOAD:
......
...@@ -811,9 +811,9 @@ struct input_dev { ...@@ -811,9 +811,9 @@ struct input_dev {
void *private; void *private;
char *name; const char *name;
char *phys; const char *phys;
char *uniq; const char *uniq;
struct input_id id; struct input_id id;
unsigned long evbit[NBITS(EV_MAX)]; unsigned long evbit[NBITS(EV_MAX)];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment