Commit 02aa2a37636c8fa4fb9322d91be46ff8225b7de0
Committed by
Linus Torvalds
1 parent
096a8aac6b
Exists in
master
and in
20 other branches
drivers: avoid format string in dev_set_name
Calling dev_set_name with a single paramter causes it to be handled as a format string. Many callers are passing potentially dynamic string content, so use "%s" in those cases to avoid any potential accidents, including wrappers like device_create*() and bdi_register(). Signed-off-by: Kees Cook <keescook@chromium.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Showing 23 changed files with 25 additions and 26 deletions Side-by-side Diff
- drivers/base/attribute_container.c
- drivers/devfreq/devfreq.c
- drivers/extcon/extcon-class.c
- drivers/hsi/hsi.c
- drivers/ide/ide-cd.c
- drivers/ide/ide-gd.c
- drivers/ide/ide-probe.c
- drivers/ide/ide-tape.c
- drivers/infiniband/core/sysfs.c
- drivers/infiniband/hw/qib/qib_file_ops.c
- drivers/isdn/mISDN/dsp_pipeline.c
- drivers/mtd/mtdcore.c
- drivers/platform/x86/wmi.c
- drivers/scsi/sd.c
- drivers/staging/android/timed_output.c
- drivers/staging/dgrp/dgrp_sysfs.c
- drivers/uwb/lc-dev.c
- drivers/video/backlight/backlight.c
- drivers/video/backlight/lcd.c
- drivers/video/output.c
- drivers/xen/xenbus/xenbus_probe.c
- mm/backing-dev.c
- sound/sound_core.c
drivers/base/attribute_container.c
... | ... | @@ -167,7 +167,7 @@ |
167 | 167 | ic->classdev.parent = get_device(dev); |
168 | 168 | ic->classdev.class = cont->class; |
169 | 169 | cont->class->dev_release = attribute_container_release; |
170 | - dev_set_name(&ic->classdev, dev_name(dev)); | |
170 | + dev_set_name(&ic->classdev, "%s", dev_name(dev)); | |
171 | 171 | if (fn) |
172 | 172 | fn(cont, dev, &ic->classdev); |
173 | 173 | else |
drivers/devfreq/devfreq.c
... | ... | @@ -477,7 +477,7 @@ |
477 | 477 | GFP_KERNEL); |
478 | 478 | devfreq->last_stat_updated = jiffies; |
479 | 479 | |
480 | - dev_set_name(&devfreq->dev, dev_name(dev)); | |
480 | + dev_set_name(&devfreq->dev, "%s", dev_name(dev)); | |
481 | 481 | err = device_register(&devfreq->dev); |
482 | 482 | if (err) { |
483 | 483 | put_device(&devfreq->dev); |
drivers/extcon/extcon-class.c
... | ... | @@ -602,7 +602,7 @@ |
602 | 602 | edev->dev->class = extcon_class; |
603 | 603 | edev->dev->release = extcon_dev_release; |
604 | 604 | |
605 | - dev_set_name(edev->dev, edev->name ? edev->name : dev_name(dev)); | |
605 | + dev_set_name(edev->dev, "%s", edev->name ? edev->name : dev_name(dev)); | |
606 | 606 | |
607 | 607 | if (edev->max_supported) { |
608 | 608 | char buf[10]; |
drivers/hsi/hsi.c
... | ... | @@ -75,7 +75,7 @@ |
75 | 75 | cl->device.bus = &hsi_bus_type; |
76 | 76 | cl->device.parent = &port->device; |
77 | 77 | cl->device.release = hsi_client_release; |
78 | - dev_set_name(&cl->device, info->name); | |
78 | + dev_set_name(&cl->device, "%s", info->name); | |
79 | 79 | cl->device.platform_data = info->platform_data; |
80 | 80 | if (info->archdata) |
81 | 81 | cl->device.archdata = *info->archdata; |
drivers/ide/ide-cd.c
... | ... | @@ -1756,7 +1756,7 @@ |
1756 | 1756 | |
1757 | 1757 | info->dev.parent = &drive->gendev; |
1758 | 1758 | info->dev.release = ide_cd_release; |
1759 | - dev_set_name(&info->dev, dev_name(&drive->gendev)); | |
1759 | + dev_set_name(&info->dev, "%s", dev_name(&drive->gendev)); | |
1760 | 1760 | |
1761 | 1761 | if (device_register(&info->dev)) |
1762 | 1762 | goto out_free_disk; |
drivers/ide/ide-gd.c
... | ... | @@ -392,7 +392,7 @@ |
392 | 392 | |
393 | 393 | idkp->dev.parent = &drive->gendev; |
394 | 394 | idkp->dev.release = ide_disk_release; |
395 | - dev_set_name(&idkp->dev, dev_name(&drive->gendev)); | |
395 | + dev_set_name(&idkp->dev, "%s", dev_name(&drive->gendev)); | |
396 | 396 | |
397 | 397 | if (device_register(&idkp->dev)) |
398 | 398 | goto out_free_disk; |
drivers/ide/ide-probe.c
... | ... | @@ -545,7 +545,7 @@ |
545 | 545 | int ret; |
546 | 546 | |
547 | 547 | /* register with global device tree */ |
548 | - dev_set_name(&hwif->gendev, hwif->name); | |
548 | + dev_set_name(&hwif->gendev, "%s", hwif->name); | |
549 | 549 | dev_set_drvdata(&hwif->gendev, hwif); |
550 | 550 | if (hwif->gendev.parent == NULL) |
551 | 551 | hwif->gendev.parent = hwif->dev; |
... | ... | @@ -559,7 +559,7 @@ |
559 | 559 | } |
560 | 560 | |
561 | 561 | hwif->portdev = device_create(ide_port_class, &hwif->gendev, |
562 | - MKDEV(0, 0), hwif, hwif->name); | |
562 | + MKDEV(0, 0), hwif, "%s", hwif->name); | |
563 | 563 | if (IS_ERR(hwif->portdev)) { |
564 | 564 | ret = PTR_ERR(hwif->portdev); |
565 | 565 | device_unregister(&hwif->gendev); |
drivers/ide/ide-tape.c
... | ... | @@ -1985,7 +1985,7 @@ |
1985 | 1985 | |
1986 | 1986 | tape->dev.parent = &drive->gendev; |
1987 | 1987 | tape->dev.release = ide_tape_release; |
1988 | - dev_set_name(&tape->dev, dev_name(&drive->gendev)); | |
1988 | + dev_set_name(&tape->dev, "%s", dev_name(&drive->gendev)); | |
1989 | 1989 | |
1990 | 1990 | if (device_register(&tape->dev)) |
1991 | 1991 | goto out_free_disk; |
drivers/infiniband/core/sysfs.c
... | ... | @@ -813,7 +813,7 @@ |
813 | 813 | |
814 | 814 | class_dev->class = &ib_class; |
815 | 815 | class_dev->parent = device->dma_device; |
816 | - dev_set_name(class_dev, device->name); | |
816 | + dev_set_name(class_dev, "%s", device->name); | |
817 | 817 | dev_set_drvdata(class_dev, device); |
818 | 818 | |
819 | 819 | INIT_LIST_HEAD(&device->port_list); |
drivers/infiniband/hw/qib/qib_file_ops.c
drivers/isdn/mISDN/dsp_pipeline.c
... | ... | @@ -102,7 +102,7 @@ |
102 | 102 | entry->dev.class = elements_class; |
103 | 103 | entry->dev.release = mISDN_dsp_dev_release; |
104 | 104 | dev_set_drvdata(&entry->dev, elem); |
105 | - dev_set_name(&entry->dev, elem->name); | |
105 | + dev_set_name(&entry->dev, "%s", elem->name); | |
106 | 106 | ret = device_register(&entry->dev); |
107 | 107 | if (ret) { |
108 | 108 | printk(KERN_ERR "%s: failed to register %s\n", |
drivers/mtd/mtdcore.c
drivers/platform/x86/wmi.c
drivers/scsi/sd.c
... | ... | @@ -2931,7 +2931,7 @@ |
2931 | 2931 | device_initialize(&sdkp->dev); |
2932 | 2932 | sdkp->dev.parent = dev; |
2933 | 2933 | sdkp->dev.class = &sd_disk_class; |
2934 | - dev_set_name(&sdkp->dev, dev_name(dev)); | |
2934 | + dev_set_name(&sdkp->dev, "%s", dev_name(dev)); | |
2935 | 2935 | |
2936 | 2936 | if (device_add(&sdkp->dev)) |
2937 | 2937 | goto out_free_index; |
drivers/staging/android/timed_output.c
... | ... | @@ -78,7 +78,7 @@ |
78 | 78 | |
79 | 79 | tdev->index = atomic_inc_return(&device_count); |
80 | 80 | tdev->dev = device_create(timed_output_class, NULL, |
81 | - MKDEV(0, tdev->index), NULL, tdev->name); | |
81 | + MKDEV(0, tdev->index), NULL, "%s", tdev->name); | |
82 | 82 | if (IS_ERR(tdev->dev)) |
83 | 83 | return PTR_ERR(tdev->dev); |
84 | 84 |
drivers/staging/dgrp/dgrp_sysfs.c
... | ... | @@ -273,7 +273,7 @@ |
273 | 273 | sprintf(name, "node%ld", nd->nd_major); |
274 | 274 | |
275 | 275 | nd->nd_class_dev = device_create(dgrp_class, dgrp_class_nodes_dev, |
276 | - MKDEV(0, nd->nd_major), NULL, name); | |
276 | + MKDEV(0, nd->nd_major), NULL, "%s", name); | |
277 | 277 | |
278 | 278 | ret = sysfs_create_group(&nd->nd_class_dev->kobj, |
279 | 279 | &dgrp_node_attribute_group); |
drivers/uwb/lc-dev.c
... | ... | @@ -440,7 +440,7 @@ |
440 | 440 | uwb_dev_init(uwb_dev); /* This sets refcnt to one, we own it */ |
441 | 441 | uwb_dev->mac_addr = *bce->mac_addr; |
442 | 442 | uwb_dev->dev_addr = bce->dev_addr; |
443 | - dev_set_name(&uwb_dev->dev, macbuf); | |
443 | + dev_set_name(&uwb_dev->dev, "%s", macbuf); | |
444 | 444 | result = uwb_dev_add(uwb_dev, &rc->uwb_dev.dev, rc); |
445 | 445 | if (result < 0) { |
446 | 446 | dev_err(dev, "new device %s: cannot instantiate device\n", |
drivers/video/backlight/backlight.c
... | ... | @@ -304,7 +304,7 @@ |
304 | 304 | new_bd->dev.class = backlight_class; |
305 | 305 | new_bd->dev.parent = parent; |
306 | 306 | new_bd->dev.release = bl_device_release; |
307 | - dev_set_name(&new_bd->dev, name); | |
307 | + dev_set_name(&new_bd->dev, "%s", name); | |
308 | 308 | dev_set_drvdata(&new_bd->dev, devdata); |
309 | 309 | |
310 | 310 | /* Set default properties */ |
drivers/video/backlight/lcd.c
... | ... | @@ -219,7 +219,7 @@ |
219 | 219 | new_ld->dev.class = lcd_class; |
220 | 220 | new_ld->dev.parent = parent; |
221 | 221 | new_ld->dev.release = lcd_device_release; |
222 | - dev_set_name(&new_ld->dev, name); | |
222 | + dev_set_name(&new_ld->dev, "%s", name); | |
223 | 223 | dev_set_drvdata(&new_ld->dev, devdata); |
224 | 224 | |
225 | 225 | rc = device_register(&new_ld->dev); |
drivers/video/output.c
... | ... | @@ -97,7 +97,7 @@ |
97 | 97 | new_dev->props = op; |
98 | 98 | new_dev->dev.class = &video_output_class; |
99 | 99 | new_dev->dev.parent = dev; |
100 | - dev_set_name(&new_dev->dev, name); | |
100 | + dev_set_name(&new_dev->dev, "%s", name); | |
101 | 101 | dev_set_drvdata(&new_dev->dev, devdata); |
102 | 102 | ret_code = device_register(&new_dev->dev); |
103 | 103 | if (ret_code) { |
drivers/xen/xenbus/xenbus_probe.c
mm/backing-dev.c
... | ... | @@ -515,7 +515,6 @@ |
515 | 515 | int bdi_setup_and_register(struct backing_dev_info *bdi, char *name, |
516 | 516 | unsigned int cap) |
517 | 517 | { |
518 | - char tmp[32]; | |
519 | 518 | int err; |
520 | 519 | |
521 | 520 | bdi->name = name; |
... | ... | @@ -524,8 +523,8 @@ |
524 | 523 | if (err) |
525 | 524 | return err; |
526 | 525 | |
527 | - sprintf(tmp, "%.28s%s", name, "-%d"); | |
528 | - err = bdi_register(bdi, NULL, tmp, atomic_long_inc_return(&bdi_seq)); | |
526 | + err = bdi_register(bdi, NULL, "%.28s-%ld", name, | |
527 | + atomic_long_inc_return(&bdi_seq)); | |
529 | 528 | if (err) { |
530 | 529 | bdi_destroy(bdi); |
531 | 530 | return err; |