mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 04:13:34 +00:00
Add alignment checks to KdpSysReadIoSpace and KdpSysWriteIoSpace
svn path=/branches/ros-amd64-bringup/; revision=43554
This commit is contained in:
@@ -264,6 +264,14 @@ KdpSysReadIoSpace(IN ULONG InterfaceType,
|
||||
return STATUS_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
/* Check for correct alignment */
|
||||
if ((IoAddress & (DataSize - 1)))
|
||||
{
|
||||
/* Invalid alignment */
|
||||
*ActualDataSize = 0;
|
||||
return STATUS_DATATYPE_MISALIGNMENT;
|
||||
}
|
||||
|
||||
switch (DataSize)
|
||||
{
|
||||
case sizeof(UCHAR):
|
||||
@@ -284,7 +292,7 @@ KdpSysReadIoSpace(IN ULONG InterfaceType,
|
||||
default:
|
||||
/* Invalid data size */
|
||||
*ActualDataSize = 0;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
return STATUS_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
/* Return the size of the data */
|
||||
@@ -313,6 +321,14 @@ KdpSysWriteIoSpace(IN ULONG InterfaceType,
|
||||
return STATUS_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
/* Check for correct alignment */
|
||||
if ((IoAddress & (DataSize - 1)))
|
||||
{
|
||||
/* Invalid alignment */
|
||||
*ActualDataSize = 0;
|
||||
return STATUS_DATATYPE_MISALIGNMENT;
|
||||
}
|
||||
|
||||
switch (DataSize)
|
||||
{
|
||||
case sizeof(UCHAR):
|
||||
@@ -333,7 +349,7 @@ KdpSysWriteIoSpace(IN ULONG InterfaceType,
|
||||
default:
|
||||
/* Invalid data size */
|
||||
*ActualDataSize = 0;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
return STATUS_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
/* Return the size of the data */
|
||||
|
||||
Reference in New Issue
Block a user