mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Ben Hutchings <ben@decadent.org.uk>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: akpm@linux-foundation.org,
	"Santosh Shilimkar" <santosh.shilimkar@oracle.com>,
	"David S. Miller" <davem@davemloft.net>,
	"Sasha Levin" <sasha.levin@oracle.com>
Subject: [PATCH 3.2 092/107] RDS: verify the underlying transport exists before creating a connection
Date: Fri, 09 Oct 2015 01:12:28 +0100	[thread overview]
Message-ID: <lsq.1444349548.169061984@decadent.org.uk> (raw)
In-Reply-To: <lsq.1444349547.316291576@decadent.org.uk>

3.2.72-rc1 review patch.  If anyone has any objections, please let me know.

------------------

From: Sasha Levin <sasha.levin@oracle.com>

commit 74e98eb085889b0d2d4908f59f6e00026063014f upstream.

There was no verification that an underlying transport exists when creating
a connection, this would cause dereferencing a NULL ptr.

It might happen on sockets that weren't properly bound before attempting to
send a message, which will cause a NULL ptr deref:

[135546.047719] kasan: GPF could be caused by NULL-ptr deref or user memory accessgeneral protection fault: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC KASAN
[135546.051270] Modules linked in:
[135546.051781] CPU: 4 PID: 15650 Comm: trinity-c4 Not tainted 4.2.0-next-20150902-sasha-00041-gbaa1222-dirty #2527
[135546.053217] task: ffff8800835bc000 ti: ffff8800bc708000 task.ti: ffff8800bc708000
[135546.054291] RIP: __rds_conn_create (net/rds/connection.c:194)
[135546.055666] RSP: 0018:ffff8800bc70fab0  EFLAGS: 00010202
[135546.056457] RAX: dffffc0000000000 RBX: 0000000000000f2c RCX: ffff8800835bc000
[135546.057494] RDX: 0000000000000007 RSI: ffff8800835bccd8 RDI: 0000000000000038
[135546.058530] RBP: ffff8800bc70fb18 R08: 0000000000000001 R09: 0000000000000000
[135546.059556] R10: ffffed014d7a3a23 R11: ffffed014d7a3a21 R12: 0000000000000000
[135546.060614] R13: 0000000000000001 R14: ffff8801ec3d0000 R15: 0000000000000000
[135546.061668] FS:  00007faad4ffb700(0000) GS:ffff880252000000(0000) knlGS:0000000000000000
[135546.062836] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[135546.063682] CR2: 000000000000846a CR3: 000000009d137000 CR4: 00000000000006a0
[135546.064723] Stack:
[135546.065048]  ffffffffafe2055c ffffffffafe23fc1 ffffed00493097bf ffff8801ec3d0008
[135546.066247]  0000000000000000 00000000000000d0 0000000000000000 ac194a24c0586342
[135546.067438]  1ffff100178e1f78 ffff880320581b00 ffff8800bc70fdd0 ffff880320581b00
[135546.068629] Call Trace:
[135546.069028] ? __rds_conn_create (include/linux/rcupdate.h:856 net/rds/connection.c:134)
[135546.069989] ? rds_message_copy_from_user (net/rds/message.c:298)
[135546.071021] rds_conn_create_outgoing (net/rds/connection.c:278)
[135546.071981] rds_sendmsg (net/rds/send.c:1058)
[135546.072858] ? perf_trace_lock (include/trace/events/lock.h:38)
[135546.073744] ? lockdep_init (kernel/locking/lockdep.c:3298)
[135546.074577] ? rds_send_drop_to (net/rds/send.c:976)
[135546.075508] ? __might_fault (./arch/x86/include/asm/current.h:14 mm/memory.c:3795)
[135546.076349] ? __might_fault (mm/memory.c:3795)
[135546.077179] ? rds_send_drop_to (net/rds/send.c:976)
[135546.078114] sock_sendmsg (net/socket.c:611 net/socket.c:620)
[135546.078856] SYSC_sendto (net/socket.c:1657)
[135546.079596] ? SYSC_connect (net/socket.c:1628)
[135546.080510] ? trace_dump_stack (kernel/trace/trace.c:1926)
[135546.081397] ? ring_buffer_unlock_commit (kernel/trace/ring_buffer.c:2479 kernel/trace/ring_buffer.c:2558 kernel/trace/ring_buffer.c:2674)
[135546.082390] ? trace_buffer_unlock_commit (kernel/trace/trace.c:1749)
[135546.083410] ? trace_event_raw_event_sys_enter (include/trace/events/syscalls.h:16)
[135546.084481] ? do_audit_syscall_entry (include/trace/events/syscalls.h:16)
[135546.085438] ? trace_buffer_unlock_commit (kernel/trace/trace.c:1749)
[135546.085515] rds_ib_laddr_check(): addr 36.74.25.172 ret -99 node type -1

Acked-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
 net/rds/connection.c | 6 ++++++
 1 file changed, 6 insertions(+)

--- a/net/rds/connection.c
+++ b/net/rds/connection.c
@@ -178,6 +178,12 @@ static struct rds_connection *__rds_conn
 		}
 	}
 
+	if (trans == NULL) {
+		kmem_cache_free(rds_conn_slab, conn);
+		conn = ERR_PTR(-ENODEV);
+		goto out;
+	}
+
 	conn->c_trans = trans;
 
 	ret = trans->conn_alloc(conn, gfp);


  parent reply	other threads:[~2015-10-09  0:20 UTC|newest]

Thread overview: 114+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-09  0:12 [PATCH 3.2 000/107] 3.2.72-rc1 review Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 013/107] perf: Fix fasync handling on inherited events Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 031/107] vfs: Test for and handle paths that are unreachable from their mnt_root Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 025/107] ipc,sem: fix use after free on IPC_RMID after a task using same semaphore set exits Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 028/107] sctp: donot reset the overall_error_count in SHUTDOWN_RECEIVE state Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 014/107] MIPS: Make set_pte() SMP safe Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 007/107] target/iscsi: Fix double free of a TUR followed by a solicited NOPOUT Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 030/107] dcache: Handle escaped paths in prepend_path Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 026/107] x86/ldt: Further fix FPU emulation Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 001/107] ipv6: Fix build failure when CONFIG_INET disabled Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 010/107] MIPS: Fix sched_getaffinity with MT FPAFF enabled Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 009/107] target: REPORT LUNS should return LUN 0 even for dynamic ACLs Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 036/107] PCI: Add VPD function 0 quirk for Intel Ethernet devices Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 034/107] mac80211: enable assoc check for mesh interfaces Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 027/107] net: Fix RCU splat in af_key Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 004/107] xen/gntdevt: Fix race condition in gntdev_release() Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 016/107] net: Clone skb before setting peeked flag Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 019/107] x86/ldt: Correct LDT access in single stepping logic Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 003/107] jbd2: protect all log tail updates with j_checkpoint_mutex Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 012/107] rds: fix an integer overflow test in rds_info_getsockopt() Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 008/107] md/raid1: extend spinlock to protect raid1_end_read_request against inconsistencies Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 006/107] USB: sierra: add 1199:68AB device ID Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 038/107] KVM: MMU: fix validation of mmio page fault Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 035/107] PCI: Add dev_flags bit to access VPD through function 0 Ben Hutchings
2015-10-09  0:26   ` Rustad, Mark D
2015-10-09  1:22     ` Ben Hutchings
2015-10-09 17:02       ` Rustad, Mark D
2015-10-09  0:12 ` [PATCH 3.2 011/107] xhci: fix off by one error in TRB DMA address boundary check Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 022/107] dm btree: add ref counting ops for the leaves of top level btrees Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 029/107] sparc64: Fix userspace FPU register corruptions Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 039/107] auxdisplay: ks0108: fix refcount Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 037/107] usb: gadget: m66592-udc: forever loop in set_feature() Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 023/107] libiscsi: Fix host busy blocking during connection teardown Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 020/107] x86/ldt: Correct FPU emulation access to LDT Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 033/107] PCI: Fix TI816X class code quirk Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 032/107] [media] rc-core: fix remove uevent generation Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 017/107] net: Fix skb_set_peeked use-after-free bug Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 002/107] pktgen: Require CONFIG_INET due to use of IPv4 checksum function Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 018/107] x86/ldt: Make modify_ldt synchronous Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 024/107] libfc: Fix fc_fcp_cleanup_each_cmd() Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 005/107] crypto: ixp4xx - Remove bogus BUG_ON on scattered dst buffer Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 015/107] ocfs2: fix BUG in ocfs2_downconvert_thread_do_work() Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 021/107] localmodconfig: Use Kbuild files too Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 066/107] ARM: 8429/1: disable GCC SRA optimization Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 076/107] ARM: fix Thumb2 signal handling when ARMv6 is enabled Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 049/107] DRM - radeon: Don't link train DisplayPort on HPD until we get the dpcd Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 091/107] virtio-net: drop NETIF_F_FRAGLIST Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 057/107] IB/mlx4: Use correct SL on AH query under RoCE Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 045/107] usb: host: ehci-sys: delete useless bus_to_hcd conversion Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 072/107] USB: option: add ZTE PIDs Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 047/107] eCryptfs: Invalidate dcache entries when lower i_nlink is zero Ben Hutchings
2015-10-09  0:12 ` Ben Hutchings [this message]
2015-10-09  0:12 ` [PATCH 3.2 095/107] net/tipc: initialize security state for new connection socket Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 104/107] ipv6: update ip6_rt_last_gc every time GC is run Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 075/107] ARM: 7880/1: Clear the IT state independent of the Thumb-2 mode Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 068/107] powerpc/MSI: Fix race condition in tearing down MSI interrupts Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 051/107] rtlwifi: rtl8192cu: Add new device ID Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 078/107] ASoC: fix broken pxa SoC support Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 074/107] btrfs: skip waiting on ordered range for special files Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 100/107] net/ipv6: Correct PIM6 mrt_lock handling Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 089/107] md: use kzalloc() when bitmap is disabled Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 086/107] x86/paravirt: Replace the paravirt nop with a bona fide empty function Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 069/107] hfs,hfsplus: cache pages correctly between bnode_create and bnode_free Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 050/107] rtlwifi: rtl8192cu: Add new device ID Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 103/107] ipv6: prevent fib6_run_gc() contention Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 073/107] Btrfs: fix read corruption of compressed and shared extents Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 061/107] Add radeon suspend/resume quirk for HP Compaq dc5750 Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 044/107] serial: 8250: bind to ALi Fast Infrared Controller (ALI5123) Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 059/107] spi: spi-pxa2xx: Check status register to determine if SSSR_TINT is disabled Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 046/107] USB: ftdi_sio: Added custom PID for CustomWare products Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 099/107] bonding: correct the MAC address for "follow" fail_over_mac policy Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 058/107] IB/uverbs: Fix race between ib_uverbs_open and remove_one Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 087/107] ocfs2/dlm: fix deadlock when dispatch assert master Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 081/107] usb: Use the USB_SS_MULT() macro to get the burst multiplier Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 043/107] drivers: usb: fsl: Workaround for USB erratum-A005275 Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 048/107] xfs: Fix xfs_attr_leafblock definition Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 067/107] pagemap: hide physical addresses from non-privileged users Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 064/107] crypto: ghash-clmulni: specify context size for ghash async algorithm Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 040/107] devres: fix devres_get() Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 054/107] xfs: return errors from partial I/O failures to files Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 052/107] of/address: Don't loop forever in of_find_matching_node_by_address() Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 085/107] cifs: use server timestamp for ntlmv2 authentication Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 063/107] Input: evdev - do not report errors form flush() Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 107/107] Revert "sctp: Fix race between OOTB responce and route removal" Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 084/107] xhci: change xhci 1.0 only restrictions to support xhci 1.1 Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 053/107] drivercore: Fix unregistration path of platform devices Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 070/107] hfs: fix B-tree corruption after insertion at position 0 Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 041/107] windfarm: decrement client count when unregistering Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 093/107] ipc/sem.c: fully initialize sem_array before making it visible Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 083/107] usb: xhci: Clear XHCI_STATE_DYING on start Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 079/107] s390/compat: correct uc_sigmask of the compat signal frame Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 071/107] perf header: Fixup reading of HEADER_NRCPUS feature Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 080/107] KVM: x86: trap AMD MSRs for the TSeg base and mask Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 065/107] fs: create and use seq_show_option for escaping Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 097/107] net: Fix skb csum races when peeking Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 060/107] drm/i915: Always mark the object as dirty when used by the GPU Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 102/107] perf tools: Fix build with perl 5.18 Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 042/107] NFSv4: don't set SETATTR for O_RDONLY|O_EXCL Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 105/107] parisc: Filter out spurious interrupts in PA-RISC irq handler Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 096/107] net: pktgen: fix race between pktgen_thread_worker() and kthread_stop() Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 082/107] xhci: give command abortion one more chance before killing xhci Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 094/107] Initialize msg/shm IPC objects before doing ipc_addid() Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 055/107] IB/qib: Change lkey table allocation to support more MRs Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 098/107] ipv6: lock socket in ip6_datagram_connect() Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 101/107] fib_rules: fix fib rule dumps across multiple skbs Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 088/107] USB: whiteheat: fix potential null-deref at probe Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 106/107] jbd2: avoid infinite loop when destroying aborted journal Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 056/107] SUNRPC: xs_reset_transport must mark the connection as disconnected Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 077/107] x86/platform: Fix Geode LX timekeeping in the generic x86 build Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 062/107] IB/uverbs: reject invalid or unknown opcodes Ben Hutchings
2015-10-09  0:12 ` [PATCH 3.2 090/107] ipv6: addrconf: validate new MTU before applying it Ben Hutchings
2015-10-09  0:56 ` [PATCH 3.2 000/107] 3.2.72-rc1 review Guenter Roeck
2015-10-09  1:17   ` Ben Hutchings
2015-10-09  1:17 ` Ben Hutchings

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=lsq.1444349548.169061984@decadent.org.uk \
    --to=ben@decadent.org.uk \
    --cc=akpm@linux-foundation.org \
    --cc=davem@davemloft.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=santosh.shilimkar@oracle.com \
    --cc=sasha.levin@oracle.com \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®