]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
src: mnl: fix setting rcvbuffer size
authorFlorian Westphal <fw@strlen.de>
Tue, 13 Aug 2019 18:44:08 +0000 (20:44 +0200)
committerFlorian Westphal <fw@strlen.de>
Tue, 13 Aug 2019 19:37:49 +0000 (21:37 +0200)
Kernel expects socklen_t (int).
Using size_t causes kernel to read upper 0-bits.

This caused tests/shell/testcases/transactions/0049huge_0
to fail on s390x -- it uses 'echo' mode and will quickly
overrun the tiny buffer size set due to this bug.

Fixes: 89c82c261bb5 ("mnl: estimate receiver buffer size")
Signed-off-by: Florian Westphal <fw@strlen.de>
Acked-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/mnl.c

index f24d2ce0c56a772f870604bd58fc053a3219318d..97a2e07651897e61f88c43560bbf117ac6ea1627 100644 (file)
--- a/src/mnl.c
+++ b/src/mnl.c
@@ -240,7 +240,7 @@ static void mnl_set_sndbuffer(const struct mnl_socket *nl,
 
 static unsigned int nlsndbufsiz;
 
-static int mnl_set_rcvbuffer(const struct mnl_socket *nl, size_t bufsiz)
+static int mnl_set_rcvbuffer(const struct mnl_socket *nl, socklen_t bufsiz)
 {
        socklen_t len = sizeof(nlsndbufsiz);
        int ret;