diff --git a/ChangeLog b/ChangeLog index a3df36cc..15d383ad 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,6 @@ +2012-05-09 Milan Broz + * Fix keyslot removal (wipe keyslot) for device with 4k hw block (1.4.0). + 2012-05-02 Milan Broz * Fix loop mapping on readonly file. * Relax --shared test, allow mapping even for overlapping segments. diff --git a/lib/utils_wipe.c b/lib/utils_wipe.c index 4cd6583c..dbcf8106 100644 --- a/lib/utils_wipe.c +++ b/lib/utils_wipe.c @@ -133,7 +133,7 @@ int crypt_wipe(const char *device, if (!buffer) return -ENOMEM; - flags = O_WRONLY | O_DIRECT | O_SYNC; + flags = O_RDWR | O_DIRECT | O_SYNC; /* use O_EXCL only for block devices */ if (exclusive && S_ISBLK(st.st_mode)) diff --git a/tests/align-test b/tests/align-test index 2963c8bd..a764a449 100755 --- a/tests/align-test +++ b/tests/align-test @@ -58,6 +58,19 @@ format() # key_bits expected [forced] echo "FAIL" fail "Expected alignment differs: expected $2 != detected $ALIGN" fi + + # test some operation, just in case + echo -e "xxx\naaa" | $CRYPTSETUP luksAddKey $DEV -i1 --key-slot 1 + if [ $? -ne 0 ] ; then + echo "FAIL" + fail "Keyslot add failed." + fi + $CRYPTSETUP -q luksKillSlot $DEV 1 + if [ $? -ne 0 ] ; then + echo "FAIL" + fail "Keyslot removal failed." + fi + echo "PASSED" }