Date: Fri, 31 Jul 2009 06:14:26 +0200 From: Oliver Pinter <oliver.pntr@gmail.com> To: Alexander Motin <mav@freebsd.org> Cc: svn-src-stable@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, svn-src-stable-7@freebsd.org Subject: Re: svn commit: r195973 - in stable/7/sys: . contrib/pf dev/ata Message-ID: <6101e8c40907302114l46e6a0f2wa783384a80504a0@mail.gmail.com> In-Reply-To: <200907301319.n6UDJC6B014743@svn.freebsd.org> References: <200907301319.n6UDJC6B014743@svn.freebsd.org>
index | next in thread | previous in thread | raw e-mail
[-- Attachment #1 --] fix complie error, tested, booted, used On 7/30/09, Alexander Motin <mav@freebsd.org> wrote: > Author: mav > Date: Thu Jul 30 13:19:12 2009 > New Revision: 195973 > URL: http://svn.freebsd.org/changeset/base/195973 > > Log: > MFC rev. 195724: > > Limit IOCATAREQUEST ioctl data size to controller's maximum I/O size. > It fixes kernel panic when requested size is too large (0xffffffff). > > PR: kern/136726 > > Modified: > stable/7/sys/ (props changed) > stable/7/sys/contrib/pf/ (props changed) > stable/7/sys/dev/ata/ata-all.c > > Modified: stable/7/sys/dev/ata/ata-all.c > ============================================================================== > --- stable/7/sys/dev/ata/ata-all.c Thu Jul 30 12:41:19 2009 (r195972) > +++ stable/7/sys/dev/ata/ata-all.c Thu Jul 30 13:19:12 2009 (r195973) > @@ -440,6 +440,7 @@ int > ata_device_ioctl(device_t dev, u_long cmd, caddr_t data) > { > struct ata_device *atadev = device_get_softc(dev); > + struct ata_channel *ch = device_get_softc(device_get_parent(dev)); > struct ata_ioc_request *ioc_request = (struct ata_ioc_request *)data; > struct ata_params *params = (struct ata_params *)data; > int *mode = (int *)data; > @@ -449,6 +450,10 @@ ata_device_ioctl(device_t dev, u_long cm > > switch (cmd) { > case IOCATAREQUEST: > + if (ioc_request->count > > + (ch->dma.max_iosize ? ch->dma.max_iosize : DFLTPHYS)) { > + return (EFBIG); > + } > if (!(buf = malloc(ioc_request->count, M_ATA, M_NOWAIT))) { > return ENOMEM; > } > _______________________________________________ > svn-src-stable-7@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/svn-src-stable-7 > To unsubscribe, send any mail to "svn-src-stable-7-unsubscribe@freebsd.org" > [-- Attachment #2 --] commit 5f4920b91e91514099d1a321e7ed8270076021b5 Author: opv <opv@oliverp.teteny.bme.hu> Date: Fri Jul 31 05:56:23 2009 +0200 ata complie fix - was svn commit: r195973 fix /usr/src/sys/dev/ata/ata-all.c: In function 'ata_device_ioctl': /usr/src/sys/dev/ata/ata-all.c:454: error: request for member 'max_iosize' in something not a structure or union Signed-off-by: Oliver Pinter <oliver.pntr@gmail.com> diff --git a/sys/dev/ata/ata-all.c b/sys/dev/ata/ata-all.c index c58e675..79e0bc4 100644 --- a/sys/dev/ata/ata-all.c +++ b/sys/dev/ata/ata-all.c @@ -451,7 +451,7 @@ ata_device_ioctl(device_t dev, u_long cmd, caddr_t data) switch (cmd) { case IOCATAREQUEST: if (ioc_request->count > - (ch->dma.max_iosize ? ch->dma.max_iosize : DFLTPHYS)) { + (ch->dma->max_iosize ? ch->dma->max_iosize : DFLTPHYS)) { return (EFBIG); } if (!(buf = malloc(ioc_request->count, M_ATA, M_NOWAIT))) {help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6101e8c40907302114l46e6a0f2wa783384a80504a0>
