Date: Thu, 19 May 2016 21:05:15 -0700 From: Jason Harmening <jason.harmening@gmail.com> To: Ravi Pokala <rpokala@mac.com>, "Jason A. Harmening" <jah@FreeBSD.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r300258 - head/sys/dev/iicbus Message-ID: <573E8CFB.8090007@gmail.com> In-Reply-To: <371B94E2-E906-4F9C-9A9B-A9D35CD93D21@panasas.com> References: <201605200303.u4K334pG019632@repo.freebsd.org> <371B94E2-E906-4F9C-9A9B-A9D35CD93D21@panasas.com>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --] On 05/19/16 20:50, Ravi Pokala wrote: > -----Original Message----- > From: <owner-src-committers@freebsd.org> on behalf of "Jason A. Harmening" <jah@FreeBSD.org> > Date: 2016-05-19, Thursday at 20:03 > To: <src-committers@freebsd.org>, <svn-src-all@freebsd.org>, <svn-src-head@freebsd.org> > Subject: svn commit: r300258 - head/sys/dev/iicbus > >> Author: jah >> Date: Fri May 20 03:03:04 2016 >> New Revision: 300258 >> URL: https://svnweb.freebsd.org/changeset/base/300258 >> >> Log: >> iic_rdwr_data->nmsgs is uint32_t, so limit the allowable number of messages to prevent memory exhaustion and short allocations on 32-bit systems. Since iicrdwr is intended to be a workalike of a Linux i2c-dev call, use the same limit of 42 that Linux uses. >> >> Also check the return value of copyin(9) to prevent unnecessary allocation in the failure case. >> >> ... >> >> error = copyin(d->msgs, buf, sizeof(*d->msgs) * d->nmsgs); >> + if (error != 0) { >> + free(buf, M_IIC); >> + return (error); >> + } >> > > Hi Jason, > > If I’m reading that right, it’s not preventing any allocations, but it is preventing a leak. Is that correct? > > Thanks, > > Ravi (rpokala@) > > Hi Ravi, There shouldn't be a leak in here, but checking the result prevents falling through the rest of the function, including the unnecessary malloc of usrbufs right after this. It also makes the error handling clearer. Thanks, Jason [-- Attachment #2 --] -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQF8BAEBCgBmBQJXPoz8XxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXRENkY3MTQyREU0MTU4MTgyRkZDNUU2ODVC QjlGOEJGOTkyODQxRDFCAAoJELufi/mShB0b47oIAI/bEO3FBfBJzir97Td4AZ2W veG1JMN+yLlnUX0FG8Ij+VOzqu2+vRhONPgp68zEIMyaPwLQS5eyTfWmowibRJbX FM+DrulKhI/mNUZ9r2QluilB7PIrJtXwcpGZbVeu84dOfYWgDDbqfIwSlF8kyxLh YDvkFeu86vZabocP9ovzt8Kjw1epJ0jcpVm/uK3BI6gsYvV7iQ7jJQDOXZCvYhlu QbCkppO42SfzexgCLcyD+uXrVFiXddaCQp9g3E0OeSf408to4gBdwstpnN/EQMYT Q4GWvd3P23RpBeAHOGxEIq1h5admLd+F7+c0/LYm0s0bxvtL6beqexFnmZuMKhE= =xVDU -----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?573E8CFB.8090007>
