[NTOS] Don't use TAG_IO_NAME when calling ExFreePoolWithTag() for freeing FileObject...
authorHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Sun, 30 Dec 2018 13:02:54 +0000 (14:02 +0100)
committerHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Sun, 30 Dec 2018 14:26:42 +0000 (15:26 +0100)
commitfefb982d644f97975f92f35c3dd4b67ccfe378ee
treeb56a90587664471363280f887132b147e08642db
parentd3a97e222875ffedec021828dd1454cfadbeb653
[NTOS] Don't use TAG_IO_NAME when calling ExFreePoolWithTag() for freeing FileObject->FileName.Buffer .

This may look strange, since this buffer is originally allocated using
the TAG_IO_NAME tag. However, it happens that file-system drivers are
allowed to re-allocate this buffer: this is what the MS' open-sourced
CDFS driver does, see e.g. CdCommonCreate() and CdNormalizeFileNames()
in cdfs/create.c .

This fixes a pool tag mismatch 'mNoI' != 'nFdC' BSOD when resources
are freed when closing a file that has been opened with a relative name
on a CDFS-mounted volume.
ntoskrnl/io/iomgr/file.c