commit:     8d7c6fc875eec641595037a161791bafa1e00677
Author:     Julien Roy <julien <AT> jroy <DOT> ca>
AuthorDate: Sat Apr  9 01:30:37 2022 +0000
Commit:     Ronny Gutbrod <gentoo <AT> tastytea <DOT> de>
CommitDate: Sat Apr  9 01:32:56 2022 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=8d7c6fc8

dev-libs/luksmeta: Fix bug #837308

Signed-off-by: Julien Roy <julien <AT> jroy.ca>

 dev-libs/luksmeta/files/luksmeta-tests.patch | 133 +++++++++++++++++++++++++++
 dev-libs/luksmeta/luksmeta-9.ebuild          |   4 +
 2 files changed, 137 insertions(+)

diff --git a/dev-libs/luksmeta/files/luksmeta-tests.patch 
b/dev-libs/luksmeta/files/luksmeta-tests.patch
new file mode 100644
index 000000000..27baf7140
--- /dev/null
+++ b/dev-libs/luksmeta/files/luksmeta-tests.patch
@@ -0,0 +1,133 @@
+diff --git a/test-lm-assumptions.c b/test-lm-assumptions.c
+index d9ff20b..b4f293f 100644
+--- a/test-lm-assumptions.c
++++ b/test-lm-assumptions.c
+@@ -28,7 +28,8 @@ main(int argc, char *argv[])
+     /* Test the layout state. */
+     assert(test_layout((range_t[]) {
+         { 0, 1024 },                    /* LUKS header */
+-        END(1024),                    /* Rest of the file */
++        { 1024, 3072, true },           /* Keyslot Area */
++        { 0, 0 },
+     }));
+ 
+     unlink(filename);
+diff --git a/test-lm-big.c b/test-lm-big.c
+index 6098e59..eb94d3b 100644
+--- a/test-lm-big.c
++++ b/test-lm-big.c
+@@ -111,7 +111,7 @@ main(int argc, char *argv[])
+ 
+     assert(test_layout((range_t[]) {
+         { 0, 1024 },                   /* LUKS header */
+-        { 1024, offset - 1024, true }, /* Keyslot Area */
++        { 1024, 3072, true },          /* Keyslot Area */
+         { offset, 4096 },              /* luksmeta header */
+         { offset + 4096, 4096 },       /* luksmeta slot 0 */
+         { offset + 8192, 4096 },       /* luksmeta slot 0 (cont) */
+@@ -127,7 +127,7 @@ main(int argc, char *argv[])
+ 
+     assert(test_layout((range_t[]) {
+         { 0, 1024 },                   /* LUKS header */
+-        { 1024, offset - 1024, true }, /* Keyslot Area */
++        { 1024, 3072, true },          /* Keyslot Area */
+         { offset, 4096 },              /* luksmeta header */
+         END(offset + 4096),            /* Rest of the file */
+     }));
+diff --git a/test-lm-init.c b/test-lm-init.c
+index 2a6cb45..b16d597 100644
+--- a/test-lm-init.c
++++ b/test-lm-init.c
+@@ -57,7 +57,7 @@ main(int argc, char *argv[])
+     /* Test the layout state. */
+     assert(test_layout((range_t[]) {
+         { 0, 1024 },                   /* LUKS header */
+-        { 1024, offset - 1024, true }, /* Keyslot Area */
++        { 1024, 3072, true },          /* Keyslot Area */
+         { offset, 4096 },              /* luksmeta header */
+         END(offset + 4096),            /* Rest of the file */
+     }));
+@@ -106,7 +106,7 @@ main(int argc, char *argv[])
+     assert(luksmeta_test(cd) == -ENOENT);
+     assert(test_layout((range_t[]) {
+         { 0, 1024 },                   /* LUKS header */
+-        { 1024, offset - 1024, true }, /* Keyslot Area */
++        { 1024, 3072, true },          /* Keyslot Area */
+         END(offset),                   /* Rest of the file */
+     }));
+ 
+diff --git a/test-lm-one.c b/test-lm-one.c
+index 8deb70a..18613e0 100644
+--- a/test-lm-one.c
++++ b/test-lm-one.c
+@@ -49,7 +49,7 @@ main(int argc, char *argv[])
+     /* Test the layout state. */
+     assert(test_layout((range_t[]) {
+         { 0, 1024 },                   /* LUKS header */
+-        { 1024, offset - 1024, true }, /* Keyslot Area */
++        { 1024, 3072, true },          /* Keyslot Area */
+         { offset, 4096 },              /* luksmeta header */
+         { offset + 4096, 4096 },       /* luksmeta slot 0 */
+         END(offset + 8192),            /* Rest of the file */
+@@ -68,7 +68,7 @@ main(int argc, char *argv[])
+     /* Test the layout state. */
+     assert(test_layout((range_t[]) {
+         { 0, 1024 },                   /* LUKS header */
+-        { 1024, offset - 1024, true }, /* Keyslot Area */
++        { 1024, 3072, true },          /* Keyslot Area */
+         { offset, 4096 },              /* luksmeta header */
+         END(offset + 4096),            /* Rest of the file */
+     }));
+diff --git a/test-lm-two.c b/test-lm-two.c
+index 78fea5b..9f0b1c5 100644
+--- a/test-lm-two.c
++++ b/test-lm-two.c
+@@ -53,7 +53,7 @@ main(int argc, char *argv[])
+ 
+     assert(test_layout((range_t[]) {
+         { 0, 1024 },                   /* LUKS header */
+-        { 1024, offset - 1024, true }, /* Keyslot Area */
++        { 1024, 3072, true },          /* Keyslot Area */
+         { offset, 4096 },              /* luksmeta header */
+         { offset + 4096, 4096 },       /* luksmeta slot 0 */
+         END(offset + 8192),            /* Rest of the file */
+@@ -70,7 +70,7 @@ main(int argc, char *argv[])
+ 
+     assert(test_layout((range_t[]) {
+         { 0, 1024 },                   /* LUKS header */
+-        { 1024, offset - 1024, true }, /* Keyslot Area */
++        { 1024, 3072, true },          /* Keyslot Area */
+         { offset, 4096 },              /* luksmeta header */
+         { offset + 4096, 4096 },       /* luksmeta slot 0 */
+         { offset + 8192, 4096 },       /* luksmeta slot 1 */
+@@ -88,7 +88,7 @@ main(int argc, char *argv[])
+     assert(luksmeta_wipe(cd, 0, UUID0) == 0);
+     assert(test_layout((range_t[]) {
+         { 0, 1024 },                   /* LUKS header */
+-        { 1024, offset - 1024, true }, /* Keyslot Area */
++        { 1024, 3072, true },          /* Keyslot Area */
+         { offset, 4096 },              /* luksmeta header */
+         { offset + 4096, 4096, true }, /* luksmeta slot 0 */
+         { offset + 8192, 4096 },       /* luksmeta slot 1 */
+@@ -99,7 +99,7 @@ main(int argc, char *argv[])
+     assert(luksmeta_wipe(cd, 1, UUID1) == 0);
+     assert(test_layout((range_t[]) {
+         { 0, 1024 },                   /* LUKS header */
+-        { 1024, offset - 1024, true }, /* Keyslot Area */
++        { 1024, 3072, true },          /* Keyslot Area */
+         { offset, 4096 },              /* luksmeta header */
+         END(offset + 4096),            /* Rest of the file */
+     }));
+diff --git a/test-luksmeta b/test-luksmeta
+index fd17ead..f1e8b2e 100755
+--- a/test-luksmeta
++++ b/test-luksmeta
+@@ -11,7 +11,7 @@ function onexit() {
+ trap 'onexit' EXIT
+ 
+ truncate -s 4M $tmp
+-echo -n foo | cryptsetup luksFormat $tmp -
++echo -n foo | cryptsetup luksFormat --type luks1 $tmp -
+ 
+ ! ./luksmeta test -d $tmp
+ 

diff --git a/dev-libs/luksmeta/luksmeta-9.ebuild 
b/dev-libs/luksmeta/luksmeta-9.ebuild
index f8a95fb85..4e6c9d29d 100644
--- a/dev-libs/luksmeta/luksmeta-9.ebuild
+++ b/dev-libs/luksmeta/luksmeta-9.ebuild
@@ -17,6 +17,10 @@ DEPEND="sys-fs/cryptsetup"
 RDEPEND="${DEPEND}"
 BDEPEND=""
 
+PATCHES=(
+       "${FILESDIR}/${PN}-tests.patch"
+)
+
 src_prepare() {
        default
        eautoreconf

Reply via email to