mISDN: Fix handling of receive buffer size in L1oIP
authorAndreas Eversberg <andreas@eversberg.eu>
Mon, 27 Jul 2009 17:24:04 +0000 (19:24 +0200)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 28 Jul 2009 21:26:51 +0000 (14:26 -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: Linus Torvalds <torvalds@linux-foundation.org>
drivers/isdn/mISDN/l1oip_core.c

index 990e6a7e6674dce0c866083fc576ce8acb1d9e52..c3b661a666cbb97478033040bb2f6bf245129208 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 {