From a695d37b8cc0e728fdac6c77565fa459bce729e8 Mon Sep 17 00:00:00 2001 From: lars Date: Wed, 12 Sep 2007 22:35:23 +0000 Subject: [PATCH] do not ignore used loop devices (size > 0) fixed tests.cryptobox.py --- src/cryptobox/core/blockdevice.py | 4 +++- src/cryptobox/tests/test.cryptobox.py | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/cryptobox/core/blockdevice.py b/src/cryptobox/core/blockdevice.py index cfe7bfe..dccb7b0 100644 --- a/src/cryptobox/core/blockdevice.py +++ b/src/cryptobox/core/blockdevice.py @@ -166,7 +166,7 @@ class Blockdevice: if major == MAJOR_DEVNUM_RAM: return False ## loop devices are ignored - if major == MAJOR_DEVNUM_LOOP: + if (major == MAJOR_DEVNUM_LOOP) and (self.size == 0): return False ## removable devices are ignored (due to long timeouts) if self.is_removable(): @@ -774,6 +774,8 @@ def get_blockdevice(dev, ## it is an absolute path if dev.startswith(devnode_dir): ## it is the name of a devicenode (e.g.: '/dev/hda1') + ## simplify the path first + dev = os.path.realpath(dev) found_dev = [ a_dev for a_dev in Blockdevices( sysblock_dir, devnode_dir).get_devices() if dev in a_dev.devnodes ] diff --git a/src/cryptobox/tests/test.cryptobox.py b/src/cryptobox/tests/test.cryptobox.py index b2186e1..e6c33bf 100755 --- a/src/cryptobox/tests/test.cryptobox.py +++ b/src/cryptobox/tests/test.cryptobox.py @@ -42,13 +42,13 @@ class CryptoBoxDeviceTests(CommonTestClass): def test_allowed_devices(self): '''is_device_allowed should accept permitted devices''' self.assertTrue(self.cb.is_device_allowed("/dev/loop1")) - self.assertTrue(self.cb.is_device_allowed("/dev/usb/../loop1")) + self.assertTrue(self.cb.is_device_allowed("/dev/pts/../loop1")) def test_denied_devices(self): '''is_device_allowed should fail with not explicitly allowed devices''' - self.assertFalse(self.cb.is_device_allowed("/dev/hda")) - self.assertFalse(self.cb.is_device_allowed("/dev/loopa/../hda")) + self.assertFalse(self.cb.is_device_allowed("/dev/hdc")) + self.assertFalse(self.cb.is_device_allowed("/dev/loopa/../hdc")) self.assertFalse(self.cb.is_device_allowed("/")) ## this device does not exist -> no permission check possible self.assertFalse(self.cb.is_device_allowed("/dev/loop"))