[ros-dev] [ros-diffs] [tfaber] 65269: [FASTFAT] - VfatCleanupFile: do not dereference the FCB when closing the volume file object. ObDereferenceObject already causes an IRP_MJ_CLOSE request to be sent, which dereference...

Thomas Faber thomas.faber at reactos.org
Wed Nov 5 19:53:05 UTC 2014


Oh... Jérôme, I only just saw that you added this in r65140...
And my change does break the msi tests again. :\

Any idea what's going wrong here?
I'm relatively certain my change is correct because
vfatFCBInitializeCacheFromVolume takes one reference, and VfatCloseFile
invoked via ObDereferenceObject will remove that reference again.

So apparently we're leaking a directory reference somewhere else? :(
Not sure if your previous investigation into this issue can provide any
pointers. Otherwise I'll have to start digging for the leak all over
again...

Thanks.
-Thomas


On 2014-11-05 19:52, tfaber at svn.reactos.org wrote:
> --- trunk/reactos/drivers/filesystems/fastfat/cleanup.c	[iso-8859-1] (original)
> +++ trunk/reactos/drivers/filesystems/fastfat/cleanup.c	[iso-8859-1] Wed Nov  5 18:52:11 2014
> @@ -92,7 +92,6 @@
>                  pFcb->FileObject = NULL;
>                  CcUninitializeCacheMap(tmpFileObject, NULL, NULL);
>                  ObDereferenceObject(tmpFileObject);
> -                vfatReleaseFCB(IrpContext->DeviceExt, pFcb);
>              }
>  
>              CcPurgeCacheSection(FileObject->SectionObjectPointer, NULL, 0, FALSE);
> 
> 



More information about the Ros-dev mailing list