diff -up e-smith-backup-2.0.0/root/etc/e-smith/web/functions/backup.handle-dirs-using-DirHandle e-smith-backup-2.0.0/root/etc/e-smith/web/functions/backup --- e-smith-backup-2.0.0/root/etc/e-smith/web/functions/backup.handle-dirs-using-DirHandle 2011-04-09 13:40:27.000000000 +0200 +++ e-smith-backup-2.0.0/root/etc/e-smith/web/functions/backup 2011-04-09 14:05:16.000000000 +0200 @@ -32,6 +32,7 @@ use esmith::cgi; use esmith::util; use esmith::lockfile; use File::Find; +use DirHandle; $File::Find::dont_use_nlink = 1; # fix for Windows shares @@ -1226,13 +1227,15 @@ sub WorkstnBackupConfig1 $q, undef, $fm->localise('CONFIGURE_WORKSTN_BACKUP')); if ( $VFSType eq 'usb' ) { - my @usbdisklist; - @usbdisklist = qx'ls /media'; - for (@usbdisklist) { - next if /floppy/; - next if /cdrom/; - push @usbdisks, $_; - } + my $d = new DirHandle "/media/"; + if (defined $d) { + while (defined($_ = $d->read)) { + unless ($_ =~ m/(floppy|cdrom|\.\.|\.)/i) { + push @usbdisks, $_; + } + } + } + unless (scalar @usbdisks) { esmith::cgi::genResult( $fm->{cgi}, $fm->localise('ERR_NO_USB_DISK'));