svn commit: r195973 - in stable/7/sys: . contrib/pf dev/ata

Oliver Pinter oliver.pntr at gmail.com
Fri Jul 31 04:37:54 UTC 2009


fix complie error, tested, booted, used

On 7/30/09, Alexander Motin <mav at 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 at 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 at freebsd.org"
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ata_compile_fix.diff
Type: text/x-diff
Size: 932 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/svn-src-all/attachments/20090731/893e1eca/ata_compile_fix.bin


More information about the svn-src-all mailing list