linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	alan@lxorguk.ukuu.org.uk, Oleg Nesterov <oleg@redhat.com>,
	Denys Vlasenko <vda.linux@googlemail.com>,
	Venu Byravarasu <vbyravarasu@nvidia.com>,
	Andrew Morton <akpm@linux-foundation.org>
Subject: [ 36/56] coredump: prevent double-free on an error path in core dumper
Date: Thu,  4 Oct 2012 14:15:57 -0700	[thread overview]
Message-ID: <20121004211156.232573923@linuxfoundation.org> (raw)
In-Reply-To: <20121004211152.101901246@linuxfoundation.org>

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

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

From: Denys Vlasenko <vda.linux@googlemail.com>

commit f34f9d186df35e5c39163444c43b4fc6255e39c5 upstream.

In !CORE_DUMP_USE_REGSET case, if elf_note_info_init fails to allocate
memory for info->fields, it frees already allocated stuff and returns
error to its caller, fill_note_info.  Which in turn returns error to its
caller, elf_core_dump.  Which jumps to cleanup label and calls
free_note_info, which will happily try to free all info->fields again.
BOOM.

This is the fix.

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Cc: Venu Byravarasu <vbyravarasu@nvidia.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/binfmt_elf.c |   19 ++++---------------
 1 file changed, 4 insertions(+), 15 deletions(-)

--- a/fs/binfmt_elf.c
+++ b/fs/binfmt_elf.c
@@ -1696,30 +1696,19 @@ static int elf_note_info_init(struct elf
 		return 0;
 	info->psinfo = kmalloc(sizeof(*info->psinfo), GFP_KERNEL);
 	if (!info->psinfo)
-		goto notes_free;
+		return 0;
 	info->prstatus = kmalloc(sizeof(*info->prstatus), GFP_KERNEL);
 	if (!info->prstatus)
-		goto psinfo_free;
+		return 0;
 	info->fpu = kmalloc(sizeof(*info->fpu), GFP_KERNEL);
 	if (!info->fpu)
-		goto prstatus_free;
+		return 0;
 #ifdef ELF_CORE_COPY_XFPREGS
 	info->xfpu = kmalloc(sizeof(*info->xfpu), GFP_KERNEL);
 	if (!info->xfpu)
-		goto fpu_free;
+		return 0;
 #endif
 	return 1;
-#ifdef ELF_CORE_COPY_XFPREGS
- fpu_free:
-	kfree(info->fpu);
-#endif
- prstatus_free:
-	kfree(info->prstatus);
- psinfo_free:
-	kfree(info->psinfo);
- notes_free:
-	kfree(info->notes);
-	return 0;
 }
 
 static int fill_note_info(struct elfhdr *elf, int phdrs,



  parent reply	other threads:[~2012-10-04 21:18 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-04 21:15 [ 00/56] 3.6.1-stable review Greg Kroah-Hartman
2012-10-04 21:15 ` [ 01/56] usb: gadget: make g_printer enumerate again Greg Kroah-Hartman
2012-10-04 21:15 ` [ 02/56] usb: gadget: initialize the strings in tcm_usb_gadget properly Greg Kroah-Hartman
2012-10-04 21:15 ` [ 03/56] usb: otg: mxs-phy: Fix mx23 operation Greg Kroah-Hartman
2012-10-04 21:15 ` [ 04/56] USB: option: blacklist QMI interface on ZTE MF683 Greg Kroah-Hartman
2012-10-04 21:15 ` [ 05/56] USB: ftdi_sio: add TIAO USB Multi-Protocol Adapter (TUMPA) support Greg Kroah-Hartman
2012-10-04 21:15 ` [ 06/56] USB: EHCI: convert warning messages to debug-level Greg Kroah-Hartman
2012-10-04 21:15 ` [ 07/56] USB: qcaux: add Pantech vendor class match Greg Kroah-Hartman
2012-10-04 21:15 ` [ 08/56] usb: host: xhci: Fix Null pointer dereferencing with 71c731a for non-x86 systems Greg Kroah-Hartman
2012-10-04 21:15 ` [ 09/56] USB: serial: fix up bug with missing {} Greg Kroah-Hartman
2012-10-04 21:15 ` [ 10/56] staging: speakup_soft: Fix reading of init string Greg Kroah-Hartman
2012-10-04 21:15 ` [ 11/56] tty: keyboard.c: Remove locking from vt_get_leds Greg Kroah-Hartman
2012-10-04 21:15 ` [ 12/56] staging: r8712u: Do not queue cloned skb Greg Kroah-Hartman
2012-10-04 21:15 ` [ 13/56] staging: comedi: s626: dont dereference insn->data Greg Kroah-Hartman
2012-10-04 21:15 ` [ 14/56] staging: comedi: jr3_pci: fix iomem dereference Greg Kroah-Hartman
2012-10-04 21:15 ` [ 15/56] staging: comedi: dont dereference user memory for INSN_INTTRIG Greg Kroah-Hartman
2012-10-04 21:15 ` [ 16/56] staging: comedi: fix memory leak for saved channel list Greg Kroah-Hartman
2012-10-04 21:15 ` [ 17/56] Remove BUG_ON from n_tty_read() Greg Kroah-Hartman
2012-10-04 21:15 ` [ 18/56] TTY: ttyprintk, dont touch behind tty->write_buf Greg Kroah-Hartman
2012-10-04 21:15 ` [ 19/56] serial: omap: fix software flow control Greg Kroah-Hartman
2012-10-04 21:15 ` [ 20/56] serial: pl011: handle corruption at high clock speeds Greg Kroah-Hartman
2012-10-04 21:15 ` [ 21/56] serial: set correct baud_base for EXSYS EX-41092 Dual 16950 Greg Kroah-Hartman
2012-10-04 21:15 ` [ 22/56] tools/hv: Fix file handle leak Greg Kroah-Hartman
2012-10-04 21:15 ` [ 23/56] tools/hv: Fix exit() error code Greg Kroah-Hartman
2012-10-04 21:15 ` [ 24/56] tools/hv: Check for read/write errors Greg Kroah-Hartman
2012-10-04 21:15 ` [ 25/56] b43legacy: Fix crash on unload when firmware not available Greg Kroah-Hartman
2012-10-04 21:15 ` [ 26/56] firmware: Add missing attributes to EFI variable attribute print out from sysfs Greg Kroah-Hartman
2012-10-04 21:15 ` [ 27/56] xhci: Intel Panther Point BEI quirk Greg Kroah-Hartman
2012-10-04 21:15 ` [ 28/56] xHCI: add cmd_ring_state Greg Kroah-Hartman
2012-10-04 21:15 ` [ 29/56] xHCI: add aborting command ring function Greg Kroah-Hartman
2012-10-04 21:15 ` [ 30/56] xHCI: cancel command after command timeout Greg Kroah-Hartman
2012-10-04 21:15 ` [ 31/56] xHCI: handle command after aborting the command ring Greg Kroah-Hartman
2012-10-04 21:15 ` [ 32/56] Increase XHCI suspend timeout to 16ms Greg Kroah-Hartman
2012-10-04 21:15 ` [ 33/56] HID: keep dev_rdesc unmodified and use it for comparisons Greg Kroah-Hartman
2012-10-04 21:15 ` [ 34/56] ath9k: Disable ASPM only for AR9285 Greg Kroah-Hartman
2012-10-04 21:15 ` [ 35/56] xen/pciback: Restore the PCI config space after an FLR Greg Kroah-Hartman
2012-10-04 21:15 ` Greg Kroah-Hartman [this message]
2012-10-04 21:15 ` [ 37/56] n_gsm.c: Implement 3GPP27.010 DLC start-up procedure in MUX Greg Kroah-Hartman
2012-10-04 21:15 ` [ 38/56] n_gsm: uplink SKBs accumulate on list Greg Kroah-Hartman
2012-10-04 21:16 ` [ 39/56] n_gsm: added interlocking for gsm_data_lock for certain code paths Greg Kroah-Hartman
2012-10-04 21:16 ` [ 40/56] n_gsm: memory leak in uplink error path Greg Kroah-Hartman
2012-10-04 21:16 ` [ 41/56] UBI: fix autoresize handling in R/O mode Greg Kroah-Hartman
2012-10-04 21:16 ` [ 42/56] UBI: erase free PEB with bitflip in EC header Greg Kroah-Hartman
2012-10-04 21:16 ` [ 43/56] Yama: handle 32-bit userspace prctl Greg Kroah-Hartman
2012-10-04 21:16 ` [ 44/56] SCSI: ibmvscsi: Fix host config length field overflow Greg Kroah-Hartman
2012-10-04 21:16 ` [ 45/56] SCSI: hpsa: Use LUN reset instead of target reset Greg Kroah-Hartman
2012-10-04 21:16 ` [ 46/56] can: mscan-mpc5xxx: fix return value check in mpc512x_can_get_clock() Greg Kroah-Hartman
2012-10-04 21:16 ` [ 47/56] Input: synaptics - adjust threshold for treating position values as negative Greg Kroah-Hartman
2012-10-04 21:16 ` [ 48/56] remoteproc: select VIRTIO to avoid build breakage Greg Kroah-Hartman
2012-10-04 21:16 ` [ 49/56] remoteproc: fix a potential NULL-dereference on cleanup Greg Kroah-Hartman
2012-10-04 21:16 ` [ 50/56] IPoIB: Fix use-after-free of multicast object Greg Kroah-Hartman
2012-10-04 21:16 ` [ 51/56] IB/srp: Fix use-after-free in srp_reset_req() Greg Kroah-Hartman
2012-10-04 21:16 ` [ 52/56] IB/srp: Avoid having aborted requests hang Greg Kroah-Hartman
2012-10-04 21:16 ` [ 53/56] IB/qib: Fix local access validation for user MRs Greg Kroah-Hartman
2012-10-04 21:16 ` [ 54/56] isci: fix isci_pci_probe() generates warning on efi failure path Greg Kroah-Hartman
2012-10-04 21:16 ` [ 55/56] SCSI: scsi_remove_target: fix softlockup regression on hot remove Greg Kroah-Hartman
2012-10-04 21:16 ` [ 56/56] SCSI: scsi_dh_alua: Enable STPG for unavailable ports Greg Kroah-Hartman

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=20121004211156.232573923@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=akpm@linux-foundation.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=linux-kernel@vger.kernel.org \
    --cc=oleg@redhat.com \
    --cc=stable@vger.kernel.org \
    --cc=vbyravarasu@nvidia.com \
    --cc=vda.linux@googlemail.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;
as well as URLs for NNTP newsgroup(s).