Re: [PATCH] Bluetooth: Fix NULL pointer dereference in bt_sock_recvmsg

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Ezequiel,

> As per the comment in include/linux/net.h, the recvfrom handlers
> should expect msg_name to be NULL. However, bt_sock_recvmsg()
> is currently not checking it, which could lead to a NULL pointer
> dereference.
> 
> The following NULL pointer dereference was produced while testing
> L2CAP datagram reception. Note that the kernel is tainted due to
> the r8723bs module being inserted. However, it seems the fix still
> applies.
> 
> $ l2test -r -G
> l2test[326]: Receiving ...
> Unable to handle kernel NULL pointer dereference at virtual address 00000000
> pgd = ee008000
> [00000000] *pgd=7f896835
> Internal error: Oops: 817 [#1] PREEMPT SMP ARM
> Modules linked in: r8723bs(O)
> CPU: 0 PID: 326 Comm: l2test Tainted: G           O 4.8.0 #1
> Hardware name: Allwinner sun7i (A20) Family
> task: ef1c6880 task.stack: eea70000
> PC is at __memzero+0x58/0x80
> LR is at l2cap_skb_msg_name+0x1c/0x4c
> pc : [<c02c47d8>]    lr : [<c0506278>]    psr: 00070013
> sp : eea71e60  ip : 00000000  fp : 00034e1c
> r10: 00000000  r9 : 00000000  r8 : eea71ed4
> r7 : 000002a0  r6 : eea71ed8  r5 : 00000000  r4 : ee4a5d80
> r3 : 00000000  r2 : 00000000  r1 : 0000000e  r0 : 00000000
> Flags: nzcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM Segment none
> Control: 10c5387d  Table: 7600806a  DAC: 00000051
> Process l2test (pid: 326, stack limit = 0xeea70210)
> Stack: (0xeea71e60 to 0xeea72000)
> 1e60: ee4a5d80 eeac2800 000002a0 c04d7114 173eefa0 00000000 c06ca68e 00000000
> 1e80: 00000001 eeac2800 eef23500 00000000 000002a0 eea71ed4 eea70000 c0504d50
> 1ea0: 00000000 00000000 eef23500 00000000 00000000 c044e8a0 eea71edc eea9f904
> 1ec0: bef89aa0 fffffff7 00000000 00035008 000002a0 00000000 00000000 00000000
> 1ee0: 00000000 00000000 eea71ed4 00000000 00000000 00000000 00004000 00000000
> 1f00: 0000011b c01078c4 eea70000 c044e5e4 00000000 00000000 642f0001 6c2f7665
> 1f20: 0000676f 00000000 00000000 00000000 00000000 00000000 00000000 00000000
> 1f40: 00000000 00000000 00000000 00000000 00000000 ffffffff 00000001 bef89ad8
> 1f60: 000000a8 c01078c4 eea70000 00000000 00034e1c c01e6c74 00000000 00000000
> 1f80: 00034e1c 000341f8 00000000 00000123 c01078c4 c044e90c 00000000 00000000
> 1fa0: 000002a0 c0107700 00034e1c 000341f8 00000003 00035008 000002a0 00000000
> 1fc0: 00034e1c 000341f8 00000000 00000123 00000000 00000000 00011ffc 00034e1c
> 1fe0: 00000000 bef89aa4 0001211c b6eebb60 60070010 00000003 00000000 00000000
> [<c02c47d8>] (__memzero) from [<c0506278>] (l2cap_skb_msg_name+0x1c/0x4c)
> [<c0506278>] (l2cap_skb_msg_name) from [<c04d7114>] (bt_sock_recvmsg+0x128/0x160)
> [<c04d7114>] (bt_sock_recvmsg) from [<c0504d50>] (l2cap_sock_recvmsg+0x98/0x134)
> [<c0504d50>] (l2cap_sock_recvmsg) from [<c044e8a0>] (SyS_recvfrom+0x94/0xec)
> [<c044e8a0>] (SyS_recvfrom) from [<c044e90c>] (SyS_recv+0x14/0x1c)
> [<c044e90c>] (SyS_recv) from [<c0107700>] (ret_fast_syscall+0x0/0x3c)
> Code: e3110010 18a0500c e49de004 e3110008 (18a0000c)
> ---[ end trace 224e35e79fe06b42 ]---
> 
> Signed-off-by: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxxxxxxxxx>
> ---
> net/bluetooth/af_bluetooth.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)

patch has been applied to bluetooth-next tree.

Regards

Marcel

--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux