This is very wrong!
PtrBCB should never ever be NULL... and if it is then it means that
CcMapData few lines above failed. In fact the whole chunk of code is
wrong. CcMapData return value is not properly checked. If it got far
enough that CcUnpinData crashed then
PtrParentFCB->NTRequiredFCB.CommonFCBHeader.FileSize == 0 and
obviously the mapping will fail. This case can easily be checked
without even attempting to map the data...
Best regards,
Filip Navara
On Sun, Aug 9, 2009 at 7:26 PM, <dgorbachev(a)svn.reactos.org> wrote:
Author: dgorbachev
Date: Sun Aug 9 19:26:10 2009
New Revision: 42569
URL:
http://svn.reactos.org/svn/reactos?rev=42569&view=rev
Log:
Do not call CcUnpinData() with NULL PtrBCB.
Modified:
trunk/reactos/drivers/filesystems/ext2/src/create.c
Modified: trunk/reactos/drivers/filesystems/ext2/src/create.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/ext2/s…
==============================================================================
--- trunk/reactos/drivers/filesystems/ext2/src/create.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/filesystems/ext2/src/create.c [iso-8859-1] Sun Aug 9 19:26:10
2009
@@ -1410,8 +1410,12 @@
}
}
- CcUnpinData( PtrBCB );
- PtrBCB = NULL;
+ // FIXME
+ if( PtrBCB )
+ {
+ CcUnpinData( PtrBCB );
+ PtrBCB = NULL;
+ }
return InodeNo;
}