mirror of
https://github.com/reactos/reactos.git
synced 2024-10-02 07:26:47 +00:00
Add alignment checks to KdpSysReadIoSpace and KdpSysWriteIoSpace
svn path=/branches/ros-amd64-bringup/; revision=43554
This commit is contained in:
parent
0fb6c8265c
commit
d901cd4fbe
|
@ -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 */
|
||||
|
|
Loading…
Reference in a new issue