Package: udev
Version: 0.103-2
Severity: important
In the script /lib/udev/write_cd_rules, the first argument to
find_next_available is used unprotected from the shell. Since its
argument is a regular expression that is also a valid shell glob, the
existence of filenames matching the glob pattern can break the
detection of existing CD-ROM device names, and result in overwriting
them in new persistent rules.
I have folders in the root directory I use for CD-ROM mount points:
/cdrom, /cdrom1, etc. Since these match the regexp passed to
find_next_available (cdrom[0-9]*), that pattern is glob-expanded,
causing find_next_available to fail. One solution is to wrap the
glob-expanding call in set -f/set +f, which does not glob expand $1.
Here is a patch that solves the problem on my system:
--- write_cd_rules.orig 2007-01-07 17:42:15.000000000 -0800
+++ write_cd_rules 2007-01-20 12:34:36.000000000 -0800
@@ -17,7 +17,9 @@
##############################################################################
find_next_available() {
+ set -f
raw_find_next_available "$(find_all_rules 'SYMLINK+=' $1)"
+ set +f
}
write_rule() {
-- Package-specific info:
-- /etc/udev/rules.d/:
/etc/udev/rules.d/:
total 8
lrwxrwxrwx 1 root root 20 2006-07-03 20:07 020_permissions.rules ->
../permissions.rules
lrwxrwxrwx 1 root root 19 2006-07-04 08:06 025_libgphoto2.rules ->
../libgphoto2.rules
lrwxrwxrwx 1 root root 16 2007-01-10 23:42 025_libsane.rules ->
../libsane.rules
lrwxrwxrwx 1 root root 22 2006-07-04 08:06 025_logitechmouse.rules ->
../logitechmouse.rules
lrwxrwxrwx 1 root root 15 2006-07-03 20:07 85-pcmcia.rules -> ../pcmcia.rules
lrwxrwxrwx 1 root root 15 2006-08-24 03:21 libnjb.rules -> ../libnjb.rules
lrwxrwxrwx 1 root root 14 2006-09-13 23:47 local.rules -> ../local.rules
lrwxrwxrwx 1 root root 13 2006-07-03 20:07 udev.rules -> ../udev.rules
lrwxrwxrwx 1 root root 25 2006-07-03 20:07 z20_persistent-input.rules ->
../persistent-input.rules
lrwxrwxrwx 1 root root 19 2006-07-03 20:07 z20_persistent.rules ->
../persistent.rules
-rw-r--r-- 1 root root 1032 2007-01-20 12:35 z25_persistent-cd.rules
-rw-r--r-- 1 root root 976 2006-12-22 23:32 z25_persistent-net.rules
lrwxrwxrwx 1 root root 33 2006-07-03 20:07 z45_persistent-net-generator.rules
-> ../persistent-net-generator.rules
lrwxrwxrwx 1 root root 12 2006-07-03 20:07 z50_run.rules -> ../run.rules
lrwxrwxrwx 1 root root 16 2006-07-03 20:07 z55_hotplug.rules ->
../hotplug.rules
lrwxrwxrwx 1 root root 19 2006-07-03 20:35 z60_alsa-utils.rules ->
../alsa-utils.rules
lrwxrwxrwx 1 root root 15 2006-07-03 22:51 z60_hdparm.rules -> ../hdparm.rules
lrwxrwxrwx 1 root root 33 2006-07-03 20:33 z60_xserver-xorg-input-wacom.rules
-> ../xserver-xorg-input-wacom.rules
lrwxrwxrwx 1 root root 29 2006-07-03 20:07 z75_cd-aliases-generator.rules ->
../cd-aliases-generator.rules
lrwxrwxrwx 1 root root 12 2007-01-18 21:24 z99_hal.rules -> ../hal.rules
-- /sys/:
/sys/block/hda/dev
/sys/block/hda/hda1/dev
/sys/block/hda/hda2/dev
/sys/block/hdc/dev
/sys/block/ram0/dev
/sys/block/ram10/dev
/sys/block/ram11/dev
/sys/block/ram12/dev
/sys/block/ram13/dev
/sys/block/ram14/dev
/sys/block/ram15/dev
/sys/block/ram1/dev
/sys/block/ram2/dev
/sys/block/ram3/dev
/sys/block/ram4/dev
/sys/block/ram5/dev
/sys/block/ram6/dev
/sys/block/ram7/dev
/sys/block/ram8/dev
/sys/block/ram9/dev
/sys/block/sr0/dev
/sys/class/drm/card0/dev
/sys/class/graphics/fb0/dev
/sys/class/input/input0/event0/dev
/sys/class/input/input1/event1/dev
/sys/class/input/input2/event2/dev
/sys/class/input/input2/mouse0/dev
/sys/class/input/mice/dev
/sys/class/misc/agpgart/dev
/sys/class/misc/device-mapper/dev
/sys/class/misc/hpet/dev
/sys/class/misc/psaux/dev
/sys/class/misc/rtc/dev
/sys/class/misc/snapshot/dev
/sys/class/misc/vboxdrv/dev
/sys/class/ppdev/parport0/dev
/sys/class/printer/lp0/dev
/sys/class/scsi_generic/sg0/dev
/sys/class/sound/adsp/dev
/sys/class/sound/audio1/dev
/sys/class/sound/audio/dev
/sys/class/sound/controlC0/dev
/sys/class/sound/controlC1/dev
/sys/class/sound/dsp1/dev
/sys/class/sound/dsp/dev
/sys/class/sound/mixer1/dev
/sys/class/sound/mixer/dev
/sys/class/sound/pcmC0D0c/dev
/sys/class/sound/pcmC0D0p/dev
/sys/class/sound/pcmC0D1c/dev
/sys/class/sound/pcmC1D0c/dev
/sys/class/sound/pcmC1D0p/dev
/sys/class/sound/timer/dev
/sys/class/usb_device/usbdev1.1/dev
/sys/class/usb_device/usbdev2.1/dev
/sys/class/usb_device/usbdev3.1/dev
/sys/class/usb_device/usbdev4.1/dev
/sys/class/usb_device/usbdev5.1/dev
/sys/class/usb_device/usbdev6.16/dev
/sys/class/usb_device/usbdev6.1/dev
/sys/devices/pci0000:00/0000:00:1d.0/usb1/1-0:1.0/usbdev1.1_ep81/dev
/sys/devices/pci0000:00/0000:00:1d.0/usb1/usbdev1.1_ep00/dev
/sys/devices/pci0000:00/0000:00:1d.1/usb2/2-0:1.0/usbdev2.1_ep81/dev
/sys/devices/pci0000:00/0000:00:1d.1/usb2/usbdev2.1_ep00/dev
/sys/devices/pci0000:00/0000:00:1d.2/usb3/3-0:1.0/usbdev3.1_ep81/dev
/sys/devices/pci0000:00/0000:00:1d.2/usb3/usbdev3.1_ep00/dev
/sys/devices/pci0000:00/0000:00:1e.0/0000:02:00.0/0000:03:00.0/usb4/4-0:1.0/usbdev4.1_ep81/dev
/sys/devices/pci0000:00/0000:00:1e.0/0000:02:00.0/0000:03:00.0/usb4/usbdev4.1_ep00/dev
/sys/devices/pci0000:00/0000:00:1e.0/0000:02:00.0/0000:03:00.1/usb5/5-0:1.0/usbdev5.1_ep81/dev
/sys/devices/pci0000:00/0000:00:1e.0/0000:02:00.0/0000:03:00.1/usb5/usbdev5.1_ep00/dev
/sys/devices/pci0000:00/0000:00:1e.0/0000:02:00.0/0000:03:00.2/usb6/6-0:1.0/usbdev6.1_ep81/dev
/sys/devices/pci0000:00/0000:00:1e.0/0000:02:00.0/0000:03:00.2/usb6/6-1/6-1:1.0/usbdev6.16_ep02/dev
/sys/devices/pci0000:00/0000:00:1e.0/0000:02:00.0/0000:03:00.2/usb6/6-1/6-1:1.0/usbdev6.16_ep86/dev
/sys/devices/pci0000:00/0000:00:1e.0/0000:02:00.0/0000:03:00.2/usb6/6-1/usbdev6.16_ep00/dev
/sys/devices/pci0000:00/0000:00:1e.0/0000:02:00.0/0000:03:00.2/usb6/usbdev6.1_ep00/dev
-- Kernel configuration:
-- System Information:
Debian Release: 4.0
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.19.2
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Versions of packages udev depends on:
ii debconf [debconf-2.0] 1.5.11 Debian configuration management sy
ii libc6 2.3.6.ds1-10 GNU C Library: Shared libraries
ii libselinux1 1.32-3 SELinux shared libraries
ii libvolume-id0 0.103-2 libvolume_id shared library
ii lsb-base 3.1-22 Linux Standard Base 3.1 init scrip
udev recommends no packages.
-- debconf information excluded
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]