mISDN: Fix handling of receive buffer size in L1oIP
authorAndreas Eversberg <andreas@eversberg.eu>
Mon, 27 Jul 2009 07:24:04 +0000 (07:24 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sun, 2 Aug 2009 19:59:32 +0000 (12:59 -0700)
The size of receive buffer pointer was used to get size of
receive buffer instead of recvbuf_size itself, so only 4/8
bytes could be transfered.

This is a regression to 2.6.30 introduced by commit 8c90e11e3543d7de612194a042a148caeaab5f1d
mISDN: Use kernel_{send,recv}msg instead of open coding

Signed-off-by: Andreas Eversberg <andreas@eversberg.eu>
Signed-off-by: Karsten Keil <keil@b1-systems.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/isdn/mISDN/l1oip_core.c

index 0ebce046ade45e1822c9024a9be32c6cd5aa68c5..7e5f30dbc0a0043e8b96ff8b230042e0b76d969c 100644 (file)
@@ -731,10 +731,10 @@ l1oip_socket_thread(void *data)
        while (!signal_pending(current)) {
                struct kvec iov = {
                        .iov_base = recvbuf,
-                       .iov_len = sizeof(recvbuf),
+                       .iov_len = recvbuf_size,
                };
                recvlen = kernel_recvmsg(socket, &msg, &iov, 1,
-                                        sizeof(recvbuf), 0);
+                                        recvbuf_size, 0);
                if (recvlen > 0) {
                        l1oip_socket_parse(hc, &sin_rx, recvbuf, recvlen);
                } else {