[ros-dev] [ros-diffs] [navaraf] 33449: Fix incorrect parameters to IoSetDeviceToVerify/IoVerifyVolume. Spotted by R.T.Sivakumar <rtshiva at gmail.com>.

Filip Navara xnavara at volny.cz
Sun May 11 22:27:11 CEST 2008


Actually this change may not be enough to fix the underlying issue. I
believe there are some cases when straight calling of IoVerifyVolume
could lead to deadlock. Maybe someone can lend a helping hand here and
verify if the code is actually correct? If not I will probably get to
it myself, but it may take a few days or even weeks.

Thanks,
Filip

On Sun, May 11, 2008 at 10:04 PM,  <navaraf at svn.reactos.org> wrote:
> Author: navaraf
>  Date: Sun May 11 15:04:47 2008
>  New Revision: 33449
>
>  URL: http://svn.reactos.org/svn/reactos?rev=33449&view=rev
>  Log:
>  Fix incorrect parameters to IoSetDeviceToVerify/IoVerifyVolume. Spotted by R.T.Sivakumar <rtshiva at gmail.com>.
>
>  Modified:
>     trunk/reactos/drivers/filesystems/fastfat/create.c
>
>  Modified: trunk/reactos/drivers/filesystems/fastfat/create.c
>  URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/fastfat/create.c?rev=33449&r1=33448&r2=33449&view=diff
>  ==============================================================================
>  --- trunk/reactos/drivers/filesystems/fastfat/create.c [iso-8859-1] (original)
>  +++ trunk/reactos/drivers/filesystems/fastfat/create.c [iso-8859-1] Sun May 11 15:04:47 2008
>  @@ -382,11 +382,10 @@
>                         DPRINT ("Media change detected!\n");
>                         DPRINT ("Device %p\n", DeviceExt->StorageDevice);
>
>  +                        /* Find the device to verify and reset the thread field to empty value again. */
>                         DeviceToVerify = IoGetDeviceToVerify (PsGetCurrentThread ());
>  -
>  -                       IoSetDeviceToVerify (PsGetCurrentThread (),
>  -                               NULL);
>  -                       Status = IoVerifyVolume (DeviceExt->StorageDevice,
>  +                       IoSetDeviceToVerify (PsGetCurrentThread (), NULL);
>  +                       Status = IoVerifyVolume (DeviceToVerify,
>                                 FALSE);
>                 }
>                 if (!NT_SUCCESS(Status))
>
>


More information about the Ros-dev mailing list