[ros-diffs] [navaraf] 13386: Protect against writes beyond the end of partition.

navaraf at svn.reactos.com navaraf at svn.reactos.com
Tue Feb 1 22:21:35 CET 2005


Protect against writes beyond the end of partition.
Modified: trunk/reactos/drivers/storage/disk/disk.c
  _____  

Modified: trunk/reactos/drivers/storage/disk/disk.c
--- trunk/reactos/drivers/storage/disk/disk.c	2005-02-01 20:49:03 UTC
(rev 13385)
+++ trunk/reactos/drivers/storage/disk/disk.c	2005-02-01 21:21:33 UTC
(rev 13386)
@@ -390,6 +390,8 @@

 {
   PDEVICE_EXTENSION DeviceExtension;
   PDISK_DATA DiskData;
+  PIO_STACK_LOCATION IrpStack;
+  ULARGE_INTEGER EndingOffset;
 
   DPRINT("DiskClassCheckReadWrite() called\n");
 
@@ -404,6 +406,16 @@
       return(STATUS_INVALID_PARAMETER);
     }
 
+  IrpStack = IoGetCurrentIrpStackLocation(Irp);  
+  EndingOffset.QuadPart = IrpStack->Parameters.Read.ByteOffset.QuadPart
+
+                          IrpStack->Parameters.Read.Length;
+
+  if (EndingOffset.QuadPart >
DeviceExtension->PartitionLength.QuadPart)
+    {
+      Irp->IoStatus.Status = STATUS_INVALID_PARAMETER;
+      return(STATUS_INVALID_PARAMETER);
+    }
+
   return(STATUS_SUCCESS);
 }
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.reactos.org/pipermail/ros-diffs/attachments/20050201/865bd45a/attachment.html


More information about the Ros-diffs mailing list