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, Cong Wang <amwang@redhat.com>,
	Dave Jones <davej@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	Venkat Venkatsubra <venkat.x.venkatsubra@oracle.com>
Subject: [ 006/104] rds: limit the size allocated by rds_message_alloc()
Date: Mon, 25 Mar 2013 01:05:30 +0000	[thread overview]
Message-ID: <20130325010524.898212546@decadent.org.uk> (raw)
In-Reply-To: <20130325010524.240972766@decadent.org.uk>

3.2-stable review patch.  If anyone has any objections, please let me know.

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

From: Cong Wang <amwang@redhat.com>

[ Upstream commit ece6b0a2b25652d684a7ced4ae680a863af041e0 ]

Dave Jones reported the following bug:

"When fed mangled socket data, rds will trust what userspace gives it,
and tries to allocate enormous amounts of memory larger than what
kmalloc can satisfy."

WARNING: at mm/page_alloc.c:2393 __alloc_pages_nodemask+0xa0d/0xbe0()
Hardware name: GA-MA78GM-S2H
Modules linked in: vmw_vsock_vmci_transport vmw_vmci vsock fuse bnep dlci bridge 8021q garp stp mrp binfmt_misc l2tp_ppp l2tp_core rfcomm s
Pid: 24652, comm: trinity-child2 Not tainted 3.8.0+ #65
Call Trace:
 [<ffffffff81044155>] warn_slowpath_common+0x75/0xa0
 [<ffffffff8104419a>] warn_slowpath_null+0x1a/0x20
 [<ffffffff811444ad>] __alloc_pages_nodemask+0xa0d/0xbe0
 [<ffffffff8100a196>] ? native_sched_clock+0x26/0x90
 [<ffffffff810b2128>] ? trace_hardirqs_off_caller+0x28/0xc0
 [<ffffffff810b21cd>] ? trace_hardirqs_off+0xd/0x10
 [<ffffffff811861f8>] alloc_pages_current+0xb8/0x180
 [<ffffffff8113eaaa>] __get_free_pages+0x2a/0x80
 [<ffffffff811934fe>] kmalloc_order_trace+0x3e/0x1a0
 [<ffffffff81193955>] __kmalloc+0x2f5/0x3a0
 [<ffffffff8104df0c>] ? local_bh_enable_ip+0x7c/0xf0
 [<ffffffffa0401ab3>] rds_message_alloc+0x23/0xb0 [rds]
 [<ffffffffa04043a1>] rds_sendmsg+0x2b1/0x990 [rds]
 [<ffffffff810b21cd>] ? trace_hardirqs_off+0xd/0x10
 [<ffffffff81564620>] sock_sendmsg+0xb0/0xe0
 [<ffffffff810b2052>] ? get_lock_stats+0x22/0x70
 [<ffffffff810b24be>] ? put_lock_stats.isra.23+0xe/0x40
 [<ffffffff81567f30>] sys_sendto+0x130/0x180
 [<ffffffff810b872d>] ? trace_hardirqs_on+0xd/0x10
 [<ffffffff816c547b>] ? _raw_spin_unlock_irq+0x3b/0x60
 [<ffffffff816cd767>] ? sysret_check+0x1b/0x56
 [<ffffffff810b8695>] ? trace_hardirqs_on_caller+0x115/0x1a0
 [<ffffffff81341d8e>] ? trace_hardirqs_on_thunk+0x3a/0x3f
 [<ffffffff816cd742>] system_call_fastpath+0x16/0x1b
---[ end trace eed6ae990d018c8b ]---

Reported-by: Dave Jones <davej@redhat.com>
Cc: Dave Jones <davej@redhat.com>
Cc: David S. Miller <davem@davemloft.net>
Cc: Venkat Venkatsubra <venkat.x.venkatsubra@oracle.com>
Signed-off-by: Cong Wang <amwang@redhat.com>
Acked-by: Venkat Venkatsubra <venkat.x.venkatsubra@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
 net/rds/message.c | 3 +++
 1 file changed, 3 insertions(+)

--- a/net/rds/message.c
+++ b/net/rds/message.c
@@ -197,6 +197,9 @@ struct rds_message *rds_message_alloc(un
 {
 	struct rds_message *rm;
 
+	if (extra_len > KMALLOC_MAX_SIZE - sizeof(struct rds_message))
+		return NULL;
+
 	rm = kzalloc(sizeof(struct rds_message) + extra_len, gfp);
 	if (!rm)
 		goto out;



  parent reply	other threads:[~2013-03-25  1:39 UTC|newest]

Thread overview: 110+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-25  0:34 [ 000/104] 3.2.42-stable review Ben Hutchings
2013-03-25  1:05 ` [ 001/104] TTY: do not reset masters packet mode Ben Hutchings
2013-03-25  1:05 ` [ 002/104] perf,x86: fix kernel crash with PEBS/BTS after suspend/resume Ben Hutchings
2013-03-25  1:05 ` [ 003/104] perf,x86: fix wrmsr_on_cpu() warning on suspend/resume Ben Hutchings
2013-03-25  1:05 ` [ 004/104] perf,x86: fix link failure for non-Intel configs Ben Hutchings
2013-03-25  1:05 ` [ 005/104] l2tp: Restore socket refcount when sendmsg succeeds Ben Hutchings
2013-03-25  1:05 ` Ben Hutchings [this message]
2013-03-25  1:05 ` [ 007/104] net: ipv6: Dont purge default router if accept_ra=2 Ben Hutchings
2013-03-25  1:05 ` [ 008/104] tcp: fix double-counted receiver RTT when leaving receiver fast path Ben Hutchings
2013-03-25  1:05 ` [ 009/104] tun: add a missing nf_reset() in tun_net_xmit() Ben Hutchings
2013-03-25  1:05 ` [ 010/104] macvlan: Set IFF_UNICAST_FLT flag to prevent unnecessary promisc mode Ben Hutchings
2013-03-25  1:05 ` [ 011/104] netlabel: correctly list all the static label mappings Ben Hutchings
2013-03-25  1:05 ` [ 012/104] bridging: fix rx_handlers return code Ben Hutchings
2013-03-25  1:05 ` [ 013/104] ipv6: stop multicast forwarding to process interface scoped addresses Ben Hutchings
2013-03-25  1:05 ` [ 014/104] rtnl: fix info leak on RTM_GETLINK request for VF devices Ben Hutchings
2013-03-25  1:05 ` [ 015/104] dcbnl: fix various netlink info leaks Ben Hutchings
2013-03-25  1:05 ` [ 016/104] 6lowpan: Fix endianness issue in is_addr_link_local() Ben Hutchings
2013-03-25  1:05 ` [ 017/104] drm/i915: Increase the RC6p threshold Ben Hutchings
2013-03-25  1:05 ` [ 018/104] perf: Revert duplicated commit Ben Hutchings
2013-03-25  1:05 ` [ 019/104] i915: initialize CADL in opregion Ben Hutchings
2013-03-25  1:05 ` [ 020/104] s390/mm: fix flush_tlb_kernel_range() Ben Hutchings
2013-03-25  1:05 ` [ 021/104] mwifiex: fix potential out-of-boundary access to ibss rate table Ben Hutchings
2013-03-25  1:05 ` [ 022/104] rtlwifi: rtl8192cu: Fix schedule while atomic bug splat Ben Hutchings
2013-03-25  1:05 ` [ 023/104] powerpc: Fix cputable entry for 970MP rev 1.0 Ben Hutchings
2013-03-25  1:05 ` [ 024/104] rtlwifi: rtl8192cu: Fix problem that prevents reassociation Ben Hutchings
2013-03-25  1:05 ` [ 025/104] vhost/net: fix heads usage of ubuf_info Ben Hutchings
2013-03-25  1:05 ` [ 026/104] selinux: use GFP_ATOMIC under spin_lock Ben Hutchings
2013-03-25  1:05 ` [ 027/104] tools: hv: Netlink source address validation allows DoS Ben Hutchings
2013-03-25  1:05 ` [ 028/104] udf: avoid info leak on export Ben Hutchings
2013-03-25  1:05 ` [ 029/104] isofs: " Ben Hutchings
2013-03-25  1:05 ` [ 030/104] sunsu: Fix panic in case of nonexistent port at "console=ttySY" cmdline option Ben Hutchings
2013-03-25  1:05 ` [ 031/104] net/ipv4: Ensure that location of timestamp option is stored Ben Hutchings
2013-03-25  1:05 ` [ 032/104] netconsole: dont call __netpoll_cleanup() while atomic Ben Hutchings
2013-03-25  1:05 ` [ 033/104] bonding: dont call update_speed_duplex() under spinlocks Ben Hutchings
2013-03-25  1:05 ` [ 034/104] sctp: Use correct sideffect command in duplicate cookie handling Ben Hutchings
2013-03-25  1:05 ` [ 035/104] sctp: dont break the loop while meeting the active_path so as to find the matched transport Ben Hutchings
2013-03-25  1:06 ` [ 036/104] ipv4: fix definition of FIB_TABLE_HASHSZ Ben Hutchings
2013-03-25  1:06 ` [ 037/104] tcp: fix skb_availroom() Ben Hutchings
2013-03-25  1:06 ` [ 038/104] rtnetlink: Mask the rta_type when range checking Ben Hutchings
2013-03-25  1:06 ` [ 039/104] inet: limit length of fragment queue hash table bucket lists Ben Hutchings
2013-03-25  1:06 ` [ 040/104] sfc: Do not attempt to flush queues if DMA is disabled Ben Hutchings
2013-03-25  1:06 ` [ 041/104] sfc: Convert firmware subtypes to native byte order in efx_mcdi_get_board_cfg() Ben Hutchings
2013-03-25  1:06 ` [ 042/104] sfc: Fix two causes of flush failure Ben Hutchings
2013-03-25  1:06 ` [ 043/104] sfc: lock TX queues when calling netif_device_detach() Ben Hutchings
2013-03-25  1:06 ` [ 044/104] sfc: Fix timekeeping in efx_mcdi_poll() Ben Hutchings
2013-03-25  1:06 ` [ 045/104] sfc: Properly sync RX DMA buffer when it is not the last in the page Ben Hutchings
2013-03-25  1:06 ` [ 046/104] sfc: Fix efx_rx_buf_offset() in the presence of swiotlb Ben Hutchings
2013-03-25  1:06 ` [ 047/104] sfc: Detach net device when stopping queues for reconfiguration Ben Hutchings
2013-03-25  1:06 ` [ 048/104] sfc: Disable soft interrupt handling during efx_device_detach_sync() Ben Hutchings
2013-03-25  1:06 ` [ 049/104] sfc: Only use TX push if a single descriptor is to be written Ben Hutchings
2013-03-25  1:06 ` [ 050/104] ext4: fix the wrong number of the allocated blocks in Ben Hutchings
2013-03-25  1:06 ` [ 051/104] jbd2: fix use after free in jbd2_journal_dirty_metadata() Ben Hutchings
2013-03-25  1:06 ` [ 052/104] ext4: convert number of blocks to clusters properly Ben Hutchings
2013-03-25  1:06 ` [ 053/104] ext4: use atomic64_t for the per-flexbg free_clusters count Ben Hutchings
2013-03-25  1:06 ` [ 054/104] tracing: Fix race in snapshot swapping Ben Hutchings
2013-03-25  1:06 ` [ 055/104] cifs: delay super block destruction until all cifsFileInfo objects Ben Hutchings
2013-03-25  1:06 ` [ 056/104] drm/i915: restrict kernel address leak in debugfs Ben Hutchings
2013-03-25  1:06 ` [ 057/104] drm/i915: bounds check execbuffer relocation count Ben Hutchings
2013-03-25  1:06 ` [ 058/104] tracing: Fix free of probe entry by calling call_rcu_sched() Ben Hutchings
2013-03-25  1:06 ` [ 059/104] tracing: Protect tracer flags with trace_types_lock Ben Hutchings
2013-03-25  1:06 ` [ 060/104] tracing: Keep overwrite in sync between regular and snapshot buffers Ben Hutchings
2013-03-25  1:06 ` [ 061/104] tracing: Prevent buffer overwrite disabled for latency tracers Ben Hutchings
2013-03-25  1:06 ` [ 062/104] USB: xhci: correctly enable interrupts Ben Hutchings
2013-03-25  1:06 ` [ 063/104] usb-storage: add unusual_devs entry for Samsung YP-Z3 mp3 player Ben Hutchings
2013-03-25  1:06 ` [ 064/104] drm/radeon/benchmark: make sure bo blit copy exists before using it Ben Hutchings
2013-03-25  1:06 ` [ 065/104] ALSA: hda/cirrus - Fix the digital beep registration Ben Hutchings
2013-03-25  1:06 ` [ 066/104] USB: xhci - fix bit definitions for IMAN register Ben Hutchings
2013-03-25  1:06 ` [ 067/104] x86-64: Fix the failure case in copy_user_handle_tail() Ben Hutchings
2013-03-25  1:06 ` [ 068/104] ALSA: snd-usb: mixer: propagate errors up the call chain Ben Hutchings
2013-03-25  1:06 ` [ 069/104] ALSA: snd-usb: mixer: ignore -EINVAL in snd_usb_mixer_controls() Ben Hutchings
2013-03-25  1:06 ` [ 070/104] ext4: fix data=journal fast mount/umount hang Ben Hutchings
2013-03-25  1:06 ` [ 071/104] ALSA: hda - Fix typo in checking IEC958 emphasis bit Ben Hutchings
2013-03-25  1:06 ` [ 072/104] usb: gadget: udc-core: fix a regression during gadget driver Ben Hutchings
2013-03-25  1:06 ` [ 073/104] dm thin: fix discard corruption Ben Hutchings
2013-03-25  1:06 ` [ 074/104] efivars: Allow disabling use as a pstore backend Ben Hutchings
2013-03-25  1:06 ` [ 075/104] efivars: Add module parameter to disable " Ben Hutchings
2013-03-25  1:06 ` [ 076/104] efivars: Fix check for CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE Ben Hutchings
2013-03-25  1:06 ` [ 077/104] efi_pstore: Introducing workqueue updating sysfs Ben Hutchings
2013-03-25  1:06 ` [ 078/104] efivars: explicitly calculate length of VariableName Ben Hutchings
2013-03-25  1:06 ` [ 079/104] efivars: Handle duplicate names from get_next_variable() Ben Hutchings
2013-03-25  1:06 ` [ 080/104] cifs: ignore everything in SPNEGO blob after mechTypes Ben Hutchings
2013-03-25  1:06 ` [ 081/104] USB: garmin_gps: fix memory leak on disconnect Ben Hutchings
2013-03-25  1:06 ` [ 082/104] USB: io_ti: fix get_icount for two port adapters Ben Hutchings
2013-03-25  1:06 ` [ 083/104] USB: serial: fix interface refcounting Ben Hutchings
2013-03-25  1:06 ` [ 084/104] USB: serial: add modem-status-change wait queue Ben Hutchings
2013-03-26 15:36   ` Johan Hovold
2013-03-27  2:35     ` Ben Hutchings
2013-03-25  1:06 ` [ 085/104] USB: ark3116: fix use-after-free in TIOCMIWAIT Ben Hutchings
2013-03-25  1:06 ` [ 086/104] USB: ch341: " Ben Hutchings
2013-03-25  1:06 ` [ 087/104] USB: cypress_m8: " Ben Hutchings
2013-03-25  1:06 ` [ 088/104] USB: ftdi_sio: " Ben Hutchings
2013-03-25  1:06 ` [ 089/104] USB: io_edgeport: " Ben Hutchings
2013-03-25  1:06 ` [ 090/104] USB: io_ti: " Ben Hutchings
2013-03-25  1:06 ` [ 091/104] USB: mct_u232: " Ben Hutchings
2013-03-25  1:06 ` [ 092/104] USB: mos7840: fix broken TIOCMIWAIT Ben Hutchings
2013-03-25  1:06 ` [ 093/104] USB: mos7840: fix use-after-free in TIOCMIWAIT Ben Hutchings
2013-03-25  1:06 ` [ 094/104] USB: oti6858: " Ben Hutchings
2013-03-25  1:06 ` [ 095/104] USB: pl2303: " Ben Hutchings
2013-03-25  1:07 ` [ 096/104] USB: spcp8x5: " Ben Hutchings
2013-03-25  1:07 ` [ 097/104] USB: ssu100: " Ben Hutchings
2013-03-25  1:07 ` [ 098/104] USB: ti_usb_3410_5052: " Ben Hutchings
2013-03-25  1:07 ` [ 099/104] i2c: tegra: check the clk_prepare_enable() return value Ben Hutchings
2013-03-25  1:07 ` [ 100/104] vfs,proc: guarantee unique inodes in /proc Ben Hutchings
2013-03-25  1:07 ` [ 101/104] mm/hugetlb: fix total hugetlbfs pages count when using memory Ben Hutchings
2013-03-25  1:07 ` [ 102/104] KMS: fix EDID detailed timing vsync parsing Ben Hutchings
2013-03-25  1:07 ` [ 103/104] KMS: fix EDID detailed timing frame rate Ben Hutchings
2013-03-25  1:07 ` [ 104/104] efivars: pstore: Do not check size when erasing variable Ben Hutchings
2013-03-25  2:06 ` [ 000/104] 3.2.42-stable review Ben Hutchings
2013-03-26 13:01 ` Satoru Takeuchi
2013-03-26 19:03   ` 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=20130325010524.898212546@decadent.org.uk \
    --to=ben@decadent.org.uk \
    --cc=akpm@linux-foundation.org \
    --cc=amwang@redhat.com \
    --cc=davej@redhat.com \
    --cc=davem@davemloft.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=venkat.x.venkatsubra@oracle.com \
    /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

Powered by JetHome