diff --git a/debian/changelog b/debian/changelog index 5777e0ccf..ba05bb26d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -7,6 +7,8 @@ linux-2.6 (2.6.33-1~experimental.3) UNRELEASED; urgency=low * linux-base: Don't show empty list of devices to be relabelled * linux-base: Don't update udev CD rules unnecessarily * linux-base: Show the device paths to be added to udev CD rules + * linux-base: Ignore nonexistent devices and properly handle devices + of unknown filesystem type (Closes: #572341) -- Ben Hutchings Sun, 28 Feb 2010 17:01:33 +0000 diff --git a/debian/linux-base.postinst b/debian/linux-base.postinst index 63c439b4e..a64f560ca 100644 --- a/debian/linux-base.postinst +++ b/debian/linux-base.postinst @@ -1222,7 +1222,8 @@ sub scan_config_files { $id_map_text = &{$config->{needs_update}}($file); } else { for my $bdev (&{$config->{list}}($file)) { - if ($bdev =~ m{^/dev/(?:[hs]d[a-z]\d*|s(?:cd|r)\d+)$}) { + if ($bdev =~ m{^/dev/(?:[hs]d[a-z]\d*|s(?:cd|r)\d+)$} && + -b $bdev) { $bdev_map{$bdev} = {}; push @matched_bdevs, $bdev; } @@ -1288,7 +1289,7 @@ sub assign_labels { next if $#{$bdev_map{$bdev}->{ids}} >= 0; my $type = $bdev_map{$bdev}->{type}; - next unless exists($label_types{$type}); + next unless defined($type) && exists($label_types{$type}); my $label_len = $label_types{$type}->{len}; my $label;