Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 23 Oct 2011 18:20:51 +0000 (UTC)
From:      Christian Brueffer <brueffer@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org
Subject:   svn commit: r226667 - stable/9/sys/dev/iicbus
Message-ID:  <201110231820.p9NIKpN8050088@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: brueffer
Date: Sun Oct 23 18:20:51 2011
New Revision: 226667
URL: http://svn.freebsd.org/changeset/base/226667

Log:
  MFC: r226398, r226442
  
  Move the allocation of usrbufs down a few lines to avoid leaking it
  in case of an error.
  
  Approved by:	re (kib)

Modified:
  stable/9/sys/dev/iicbus/iic.c
Directory Properties:
  stable/9/sys/   (props changed)
  stable/9/sys/amd64/include/xen/   (props changed)
  stable/9/sys/boot/   (props changed)
  stable/9/sys/boot/i386/efi/   (props changed)
  stable/9/sys/boot/ia64/efi/   (props changed)
  stable/9/sys/boot/ia64/ski/   (props changed)
  stable/9/sys/boot/powerpc/boot1.chrp/   (props changed)
  stable/9/sys/boot/powerpc/ofw/   (props changed)
  stable/9/sys/cddl/contrib/opensolaris/   (props changed)
  stable/9/sys/conf/   (props changed)
  stable/9/sys/contrib/dev/acpica/   (props changed)
  stable/9/sys/contrib/octeon-sdk/   (props changed)
  stable/9/sys/contrib/pf/   (props changed)
  stable/9/sys/contrib/x86emu/   (props changed)

Modified: stable/9/sys/dev/iicbus/iic.c
==============================================================================
--- stable/9/sys/dev/iicbus/iic.c	Sun Oct 23 16:57:10 2011	(r226666)
+++ stable/9/sys/dev/iicbus/iic.c	Sun Oct 23 18:20:51 2011	(r226667)
@@ -346,11 +346,11 @@ iicioctl(struct cdev *dev, u_long cmd, c
 
 	case I2CRDWR:
 		buf = malloc(sizeof(*d->msgs) * d->nmsgs, M_TEMP, M_WAITOK);
-		usrbufs = malloc(sizeof(void *) * d->nmsgs, M_TEMP, M_ZERO | M_WAITOK);
 		error = copyin(d->msgs, buf, sizeof(*d->msgs) * d->nmsgs);
 		if (error)
 			break;
 		/* Alloc kernel buffers for userland data, copyin write data */
+		usrbufs = malloc(sizeof(void *) * d->nmsgs, M_TEMP, M_ZERO | M_WAITOK);
 		for (i = 0; i < d->nmsgs; i++) {
 			m = &((struct iic_msg *)buf)[i];
 			usrbufs[i] = m->buf;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201110231820.p9NIKpN8050088>