mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 01:55:19 +00:00
[XDK] Improve unaligned pointer read macros
- The #if was missing x86 (Windows SDK bug!) - The unaligned attribute was on the wrong side (Windows SDK bug!) - Add a comment that these are unsafe and shouldn't be used
This commit is contained in:
parent
2af6fd4def
commit
a0bbb9ef99
1 changed files with 10 additions and 4 deletions
|
@ -829,7 +829,13 @@ RtlSetDaclSecurityDescriptor(
|
|||
_In_opt_ PACL Dacl,
|
||||
_In_opt_ BOOLEAN DaclDefaulted);
|
||||
|
||||
#if defined(_AMD64_)
|
||||
//
|
||||
// These functions are really bad and shouldn't be used.
|
||||
// They have no type checking and can easily overwrite the target
|
||||
// variable or only set half of it.
|
||||
// Use Read/WriteUnalignedU16/U32/U64 from reactos/unaligned.h instead.
|
||||
//
|
||||
#if defined(_AMD64_) || defined(_M_AMD64) || defined(_X86) || defined(_M_IX86)
|
||||
|
||||
/* VOID
|
||||
* RtlStoreUlong(
|
||||
|
@ -861,7 +867,7 @@ RtlSetDaclSecurityDescriptor(
|
|||
* PUSHORT SourceAddress);
|
||||
*/
|
||||
#define RtlRetrieveUshort(DestAddress,SrcAddress) \
|
||||
*(USHORT UNALIGNED *)(DestAddress) = *(USHORT)(SrcAddress)
|
||||
*(USHORT*)(DestAddress) = *(USHORT UNALIGNED *)(SrcAddress)
|
||||
|
||||
/* VOID
|
||||
* RtlRetrieveUlong(
|
||||
|
@ -869,7 +875,7 @@ RtlSetDaclSecurityDescriptor(
|
|||
* PULONG SourceAddress);
|
||||
*/
|
||||
#define RtlRetrieveUlong(DestAddress,SrcAddress) \
|
||||
*(ULONG UNALIGNED *)(DestAddress) = *(PULONG)(SrcAddress)
|
||||
*(ULONG*)(DestAddress) = *(ULONG UNALIGNED *)(SrcAddress)
|
||||
|
||||
#else
|
||||
|
||||
|
@ -927,7 +933,7 @@ RtlSetDaclSecurityDescriptor(
|
|||
*((PULONG)(DestAddress))=*((PULONG)(SrcAddress)); \
|
||||
}
|
||||
|
||||
#endif /* defined(_AMD64_) */
|
||||
#endif /* defined(_AMD64_) || defined(_M_AMD64) || defined(_X86) || defined(_M_IX86) */
|
||||
|
||||
#ifdef _WIN64
|
||||
/* VOID
|
||||
|
|
Loading…
Reference in a new issue