[CDFS]
authorKamil Hornicek <kamil.hornicek@reactos.org>
Mon, 10 Oct 2011 13:37:19 +0000 (13:37 +0000)
committerKamil Hornicek <kamil.hornicek@reactos.org>
Mon, 10 Oct 2011 13:37:19 +0000 (13:37 +0000)
Fix a buffer overrun that was corrupting the FCB.
See issue #4086 for more details.

svn path=/trunk/; revision=54072

reactos/drivers/filesystems/cdfs/dirctl.c

index 8cf71a2..9174f69 100644 (file)
@@ -325,7 +325,8 @@ CdfsFindFile(PDEVICE_EXTENSION DeviceExt,
             DPRINT("PathName '%S'  ObjectName '%S'\n", Fcb->PathName, Fcb->ObjectName);
 
             memcpy(&Fcb->Entry, Record, sizeof(DIR_RECORD));
-            wcsncpy(Fcb->ObjectName, name, MAX_PATH);
+            wcsncpy(Fcb->ObjectName, name, min(wcslen(name) + 1,
+                MAX_PATH - wcslen(Fcb->PathName) + wcslen(Fcb->ObjectName)));
 
             /* Copy short name */
             Fcb->ShortNameU.Length = ShortName.Length;