diff --git a/client/Windows/wf_cliprdr.c b/client/Windows/wf_cliprdr.c index 5c73ad8b4..a5cc0e1d3 100644 --- a/client/Windows/wf_cliprdr.c +++ b/client/Windows/wf_cliprdr.c @@ -587,11 +587,7 @@ static HRESULT STDMETHODCALLTYPE CliprdrDataObject_GetData(IDataObject* This, FO if (cliprdr_send_data_request(clipboard, remote) != 0) return E_UNEXPECTED; -#if defined(NONAMELESSUNION) pMedium->u.hGlobal = clipboard->hmem; -#else - pMedium->hGlobal = clipboard->hmem; -#endif /* points to a FILEGROUPDESCRIPTOR structure */ /* GlobalLock returns a pointer to the first byte of the memory block, * in which is a FILEGROUPDESCRIPTOR structure, whose first UINT member @@ -628,11 +624,7 @@ static HRESULT STDMETHODCALLTYPE CliprdrDataObject_GetData(IDataObject* This, FO clipboard->hmem = NULL; } -#if defined(NONAMELESSUNION) pMedium->u.hGlobal = NULL; -#else - pMedium->hGlobal = NULL; -#endif return E_OUTOFMEMORY; } } @@ -640,12 +632,7 @@ static HRESULT STDMETHODCALLTYPE CliprdrDataObject_GetData(IDataObject* This, FO { if ((pFormatEtc->lindex >= 0) && ((ULONG)pFormatEtc->lindex < instance->m_nStreams)) { -#if defined(NONAMELESSUNION) - pMedium->u.pstm -#else - pMedium->pstm -#endif - = instance->m_pStream[pFormatEtc->lindex]; + pMedium->u.pstm = instance->m_pStream[pFormatEtc->lindex]; IDataObject_AddRef(instance->m_pStream[pFormatEtc->lindex]); } else @@ -2081,11 +2068,7 @@ static SSIZE_T wf_cliprdr_get_filedescriptor(wfClipboard* clipboard, BYTE** pDat goto exit; } -#if defined(NONAMELESSUNION) HGLOBAL hdl = stg_medium.u.hGlobal; -#else - HGLOBAL hdl = stg_medium.hGlobal; -#endif DROPFILES* dropFiles = (DROPFILES*)GlobalLock(hdl); if (!dropFiles) @@ -2332,11 +2315,7 @@ wf_cliprdr_server_file_contents_request(CliprdrClientContext* context, if (hRet == S_OK) { -#if defined(NONAMELESSUNION) pStreamStc = vStgMedium.u.pstm; -#else - pStreamStc = vStgMedium.pstm; -#endif uStreamIdStc = fileContentsRequest->streamId; bIsStreamFile = TRUE; } diff --git a/winpr/libwinpr/interlocked/interlocked.c b/winpr/libwinpr/interlocked/interlocked.c index 6f0151526..eb1170904 100644 --- a/winpr/libwinpr/interlocked/interlocked.c +++ b/winpr/libwinpr/interlocked/interlocked.c @@ -19,6 +19,7 @@ #include +#include #include #include #include @@ -34,6 +35,7 @@ VOID InitializeSListHead(WINPR_PSLIST_HEADER ListHead) { + WINPR_ASSERT(ListHead); #ifdef _WIN64 ListHead->s.Alignment = 0; ListHead->s.Region = 0; @@ -46,9 +48,11 @@ VOID InitializeSListHead(WINPR_PSLIST_HEADER ListHead) WINPR_PSLIST_ENTRY InterlockedPushEntrySList(WINPR_PSLIST_HEADER ListHead, WINPR_PSLIST_ENTRY ListEntry) { - WINPR_SLIST_HEADER old; - WINPR_SLIST_HEADER newHeader; + WINPR_SLIST_HEADER old = { 0 }; + WINPR_SLIST_HEADER newHeader = { 0 }; + WINPR_ASSERT(ListHead); + WINPR_ASSERT(ListEntry); #ifdef _WIN64 newHeader.HeaderX64.NextEntry = (((ULONG_PTR)ListEntry) >> 4); @@ -61,11 +65,10 @@ WINPR_PSLIST_ENTRY InterlockedPushEntrySList(WINPR_PSLIST_HEADER ListHead, newHeader.HeaderX64.Depth = old.HeaderX64.Depth + 1; newHeader.HeaderX64.Sequence = old.HeaderX64.Sequence + 1; - if (InterlockedCompareExchange64((LONGLONG*)ListHead, newHeader.s.Alignment, - old.s.Alignment)) + if (InterlockedCompareExchange64((LONGLONG*)ListHead, newHeader).Alignment, old).Alignment)) { - InterlockedCompareExchange64(&((LONGLONG*)ListHead)[1], newHeader.s.Region, - old.s.Region); + InterlockedCompareExchange64(&((LONGLONG*)ListHead)[1], newHeader).Region, + old).Region); break; } } @@ -97,6 +100,10 @@ WINPR_PSLIST_ENTRY InterlockedPushEntrySList(WINPR_PSLIST_HEADER ListHead, WINPR_PSLIST_ENTRY InterlockedPushListSListEx(WINPR_PSLIST_HEADER ListHead, WINPR_PSLIST_ENTRY List, WINPR_PSLIST_ENTRY ListEnd, ULONG Count) { + WINPR_ASSERT(ListHead); + WINPR_ASSERT(List); + WINPR_ASSERT(ListEnd); + #ifdef _WIN64 #else @@ -107,10 +114,12 @@ WINPR_PSLIST_ENTRY InterlockedPushListSListEx(WINPR_PSLIST_HEADER ListHead, WINP WINPR_PSLIST_ENTRY InterlockedPopEntrySList(WINPR_PSLIST_HEADER ListHead) { - WINPR_SLIST_HEADER old; - WINPR_SLIST_HEADER newHeader; + WINPR_SLIST_HEADER old = { 0 }; + WINPR_SLIST_HEADER newHeader = { 0 }; WINPR_PSLIST_ENTRY entry = NULL; + WINPR_ASSERT(ListHead); + #ifdef _WIN64 while (1) { @@ -125,11 +134,10 @@ WINPR_PSLIST_ENTRY InterlockedPopEntrySList(WINPR_PSLIST_HEADER ListHead) newHeader.HeaderX64.Depth = old.HeaderX64.Depth - 1; newHeader.HeaderX64.Sequence = old.HeaderX64.Sequence - 1; - if (InterlockedCompareExchange64((LONGLONG*)ListHead, newHeader.s.Alignment, - old.s.Alignment)) + if (InterlockedCompareExchange64((LONGLONG*)ListHead, newHeader).Alignment, old).Alignment)) { - InterlockedCompareExchange64(&((LONGLONG*)ListHead)[1], newHeader.s.Region, - old.s.Region); + InterlockedCompareExchange64(&((LONGLONG*)ListHead)[1], newHeader).Region, + old).Region); break; } } @@ -162,15 +170,16 @@ WINPR_PSLIST_ENTRY InterlockedPopEntrySList(WINPR_PSLIST_HEADER ListHead) WINPR_PSLIST_ENTRY InterlockedFlushSList(WINPR_PSLIST_HEADER ListHead) { - WINPR_SLIST_HEADER old; - WINPR_SLIST_HEADER newHeader; + WINPR_SLIST_HEADER old = { 0 }; + WINPR_SLIST_HEADER newHeader = { 0 }; + WINPR_ASSERT(ListHead); if (!QueryDepthSList(ListHead)) return NULL; #ifdef _WIN64 - newHeader.s.Alignment = 0; - newHeader.s.Region = 0; + newHeader).Alignment = 0; + newHeader).Region = 0; newHeader.HeaderX64.HeaderType = 1; while (1) @@ -178,11 +187,10 @@ WINPR_PSLIST_ENTRY InterlockedFlushSList(WINPR_PSLIST_HEADER ListHead) old = *ListHead; newHeader.HeaderX64.Sequence = old.HeaderX64.Sequence + 1; - if (InterlockedCompareExchange64((LONGLONG*)ListHead, newHeader.s.Alignment, - old.s.Alignment)) + if (InterlockedCompareExchange64((LONGLONG*)ListHead, newHeader).Alignment, old).Alignment)) { - InterlockedCompareExchange64(&((LONGLONG*)ListHead)[1], newHeader.s.Region, - old.s.Region); + InterlockedCompareExchange64(&((LONGLONG*)ListHead)[1], newHeader).Region, + old).Region); break; } } @@ -212,6 +220,8 @@ WINPR_PSLIST_ENTRY InterlockedFlushSList(WINPR_PSLIST_HEADER ListHead) USHORT QueryDepthSList(WINPR_PSLIST_HEADER ListHead) { + WINPR_ASSERT(ListHead); + #ifdef _WIN64 return ListHead->HeaderX64.Depth; #else @@ -221,6 +231,8 @@ USHORT QueryDepthSList(WINPR_PSLIST_HEADER ListHead) LONG InterlockedIncrement(LONG volatile* Addend) { + WINPR_ASSERT(Addend); + #if defined(__GNUC__) || defined(__clang__) WINPR_PRAGMA_DIAG_PUSH WINPR_PRAGMA_DIAG_IGNORED_ATOMIC_SEQ_CST @@ -233,6 +245,8 @@ LONG InterlockedIncrement(LONG volatile* Addend) LONG InterlockedDecrement(LONG volatile* Addend) { + WINPR_ASSERT(Addend); + #if defined(__GNUC__) || defined(__clang__) WINPR_PRAGMA_DIAG_PUSH WINPR_PRAGMA_DIAG_IGNORED_ATOMIC_SEQ_CST @@ -245,6 +259,8 @@ LONG InterlockedDecrement(LONG volatile* Addend) LONG InterlockedExchange(LONG volatile* Target, LONG Value) { + WINPR_ASSERT(Target); + #if defined(__GNUC__) || defined(__clang__) WINPR_PRAGMA_DIAG_PUSH WINPR_PRAGMA_DIAG_IGNORED_ATOMIC_SEQ_CST @@ -257,6 +273,8 @@ LONG InterlockedExchange(LONG volatile* Target, LONG Value) LONG InterlockedExchangeAdd(LONG volatile* Addend, LONG Value) { + WINPR_ASSERT(Addend); + #if defined(__GNUC__) || defined(__clang__) WINPR_PRAGMA_DIAG_PUSH WINPR_PRAGMA_DIAG_IGNORED_ATOMIC_SEQ_CST @@ -269,6 +287,8 @@ LONG InterlockedExchangeAdd(LONG volatile* Addend, LONG Value) LONG InterlockedCompareExchange(LONG volatile* Destination, LONG Exchange, LONG Comperand) { + WINPR_ASSERT(Destination); + #if defined(__GNUC__) || defined(__clang__) WINPR_PRAGMA_DIAG_PUSH WINPR_PRAGMA_DIAG_IGNORED_ATOMIC_SEQ_CST @@ -282,6 +302,8 @@ LONG InterlockedCompareExchange(LONG volatile* Destination, LONG Exchange, LONG PVOID InterlockedCompareExchangePointer(PVOID volatile* Destination, PVOID Exchange, PVOID Comperand) { + WINPR_ASSERT(Destination); + #if defined(__GNUC__) || defined(__clang__) WINPR_PRAGMA_DIAG_PUSH WINPR_PRAGMA_DIAG_IGNORED_ATOMIC_SEQ_CST @@ -367,6 +389,8 @@ LONGLONG InterlockedCompareExchange64(LONGLONG volatile* Destination, LONGLONG E LONGLONG InterlockedCompareExchange64(LONGLONG volatile* Destination, LONGLONG Exchange, LONGLONG Comperand) { + WINPR_ASSERT(Destination); + #if defined(__GNUC__) || defined(__clang__) WINPR_PRAGMA_DIAG_PUSH WINPR_PRAGMA_DIAG_IGNORED_ATOMIC_SEQ_CST @@ -391,21 +415,25 @@ LONGLONG InterlockedCompareExchange64(LONGLONG volatile* Destination, LONGLONG E VOID InitializeListHead(WINPR_PLIST_ENTRY ListHead) { + WINPR_ASSERT(ListHead); ListHead->Flink = ListHead->Blink = ListHead; } BOOL IsListEmpty(const WINPR_LIST_ENTRY* ListHead) { + WINPR_ASSERT(ListHead); return (BOOL)(ListHead->Flink == ListHead); } BOOL RemoveEntryList(WINPR_PLIST_ENTRY Entry) { - WINPR_PLIST_ENTRY OldFlink = NULL; - WINPR_PLIST_ENTRY OldBlink = NULL; + WINPR_ASSERT(Entry); + WINPR_PLIST_ENTRY OldFlink = Entry->Flink; + WINPR_ASSERT(OldFlink); + + WINPR_PLIST_ENTRY OldBlink = Entry->Blink; + WINPR_ASSERT(OldBlink); - OldFlink = Entry->Flink; - OldBlink = Entry->Blink; OldFlink->Blink = OldBlink; OldBlink->Flink = OldFlink; @@ -414,9 +442,12 @@ BOOL RemoveEntryList(WINPR_PLIST_ENTRY Entry) VOID InsertHeadList(WINPR_PLIST_ENTRY ListHead, WINPR_PLIST_ENTRY Entry) { - WINPR_PLIST_ENTRY OldFlink = NULL; + WINPR_ASSERT(ListHead); + WINPR_ASSERT(Entry); + + WINPR_PLIST_ENTRY OldFlink = ListHead->Flink; + WINPR_ASSERT(OldFlink); - OldFlink = ListHead->Flink; Entry->Flink = OldFlink; Entry->Blink = ListHead; OldFlink->Blink = Entry; @@ -425,11 +456,14 @@ VOID InsertHeadList(WINPR_PLIST_ENTRY ListHead, WINPR_PLIST_ENTRY Entry) WINPR_PLIST_ENTRY RemoveHeadList(WINPR_PLIST_ENTRY ListHead) { - WINPR_PLIST_ENTRY Flink = NULL; - WINPR_PLIST_ENTRY Entry = NULL; + WINPR_ASSERT(ListHead); + + WINPR_PLIST_ENTRY Entry = ListHead->Flink; + WINPR_ASSERT(Entry); + + WINPR_PLIST_ENTRY Flink = Entry->Flink; + WINPR_ASSERT(Flink); - Entry = ListHead->Flink; - Flink = Entry->Flink; ListHead->Flink = Flink; Flink->Blink = ListHead; @@ -438,9 +472,12 @@ WINPR_PLIST_ENTRY RemoveHeadList(WINPR_PLIST_ENTRY ListHead) VOID InsertTailList(WINPR_PLIST_ENTRY ListHead, WINPR_PLIST_ENTRY Entry) { - WINPR_PLIST_ENTRY OldBlink = NULL; + WINPR_ASSERT(ListHead); + WINPR_ASSERT(Entry); + + WINPR_PLIST_ENTRY OldBlink = ListHead->Blink; + WINPR_ASSERT(OldBlink); - OldBlink = ListHead->Blink; Entry->Flink = ListHead; Entry->Blink = OldBlink; OldBlink->Flink = Entry; @@ -449,11 +486,14 @@ VOID InsertTailList(WINPR_PLIST_ENTRY ListHead, WINPR_PLIST_ENTRY Entry) WINPR_PLIST_ENTRY RemoveTailList(WINPR_PLIST_ENTRY ListHead) { - WINPR_PLIST_ENTRY Blink = NULL; - WINPR_PLIST_ENTRY Entry = NULL; + WINPR_ASSERT(ListHead); + + WINPR_PLIST_ENTRY Entry = ListHead->Blink; + WINPR_ASSERT(Entry); + + WINPR_PLIST_ENTRY Blink = Entry->Blink; + WINPR_ASSERT(Blink); - Entry = ListHead->Blink; - Blink = Entry->Blink; ListHead->Blink = Blink; Blink->Flink = ListHead; @@ -462,6 +502,9 @@ WINPR_PLIST_ENTRY RemoveTailList(WINPR_PLIST_ENTRY ListHead) VOID AppendTailList(WINPR_PLIST_ENTRY ListHead, WINPR_PLIST_ENTRY ListToAppend) { + WINPR_ASSERT(ListHead); + WINPR_ASSERT(ListToAppend); + WINPR_PLIST_ENTRY ListEnd = ListHead->Blink; ListHead->Blink->Flink = ListToAppend; @@ -472,15 +515,17 @@ VOID AppendTailList(WINPR_PLIST_ENTRY ListHead, WINPR_PLIST_ENTRY ListToAppend) VOID PushEntryList(WINPR_PSINGLE_LIST_ENTRY ListHead, WINPR_PSINGLE_LIST_ENTRY Entry) { + WINPR_ASSERT(ListHead); + WINPR_ASSERT(Entry); + Entry->Next = ListHead->Next; ListHead->Next = Entry; } WINPR_PSINGLE_LIST_ENTRY PopEntryList(WINPR_PSINGLE_LIST_ENTRY ListHead) { - WINPR_PSINGLE_LIST_ENTRY FirstEntry = NULL; - - FirstEntry = ListHead->Next; + WINPR_ASSERT(ListHead); + WINPR_PSINGLE_LIST_ENTRY FirstEntry = ListHead->Next; if (FirstEntry != NULL) ListHead->Next = FirstEntry->Next; diff --git a/winpr/libwinpr/pipe/pipe.c b/winpr/libwinpr/pipe/pipe.c index c4857a1fb..f1f76cb2e 100644 --- a/winpr/libwinpr/pipe/pipe.c +++ b/winpr/libwinpr/pipe/pipe.c @@ -332,12 +332,7 @@ BOOL NamedPipeRead(PVOID Object, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, /* synchronous behavior */ lpOverlapped->Internal = 0; lpOverlapped->InternalHigh = (ULONG_PTR)nNumberOfBytesToRead; -#if defined(NONAMELESSUNION) - lpOverlapped->DUMMYUNIONNAME.Pointer -#else - lpOverlapped->Pointer -#endif - = (PVOID)lpBuffer; + lpOverlapped->DUMMYUNIONNAME.Pointer = (PVOID)lpBuffer; (void)SetEvent(lpOverlapped->hEvent); #endif } @@ -431,12 +426,7 @@ BOOL NamedPipeWrite(PVOID Object, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, PVOID pv; } cnv; cnv.cpv = lpBuffer; -#if defined(NONAMELESSUNION) - lpOverlapped->DUMMYUNIONNAME.Pointer -#else - lpOverlapped->Pointer -#endif - = cnv.pv; + lpOverlapped->DUMMYUNIONNAME.Pointer = cnv.pv; } (void)SetEvent(lpOverlapped->hEvent); #endif @@ -792,12 +782,7 @@ BOOL ConnectNamedPipe(HANDLE hNamedPipe, LPOVERLAPPED lpOverlapped) /* synchronous behavior */ lpOverlapped->Internal = 2; lpOverlapped->InternalHigh = (ULONG_PTR)0; -#if defined(NONAMELESSUNION) - lpOverlapped->DUMMYUNIONNAME.Pointer -#else - lpOverlapped->Pointer -#endif - = (PVOID)NULL; + lpOverlapped->DUMMYUNIONNAME.Pointer = (PVOID)NULL; (void)SetEvent(lpOverlapped->hEvent); } diff --git a/winpr/libwinpr/sysinfo/sysinfo.c b/winpr/libwinpr/sysinfo/sysinfo.c index 7f0d585fc..b918c504b 100644 --- a/winpr/libwinpr/sysinfo/sysinfo.c +++ b/winpr/libwinpr/sysinfo/sysinfo.c @@ -231,11 +231,7 @@ void GetSystemInfo(LPSYSTEM_INFO lpSystemInfo) WINPR_ASSERT(lpSystemInfo); *lpSystemInfo = empty; -#if defined(NONAMELESSUNION) lpSystemInfo->DUMMYUNIONNAME.DUMMYSTRUCTNAME.wProcessorArchitecture = -#else - lpSystemInfo->wProcessorArchitecture = -#endif GetProcessorArchitecture(); lpSystemInfo->dwPageSize = GetSystemPageSize(); lpSystemInfo->dwNumberOfProcessors = GetNumberOfProcessors(); diff --git a/winpr/libwinpr/sysinfo/test/TestGetNativeSystemInfo.c b/winpr/libwinpr/sysinfo/test/TestGetNativeSystemInfo.c index a2c955d76..cb059d6da 100644 --- a/winpr/libwinpr/sysinfo/test/TestGetNativeSystemInfo.c +++ b/winpr/libwinpr/sysinfo/test/TestGetNativeSystemInfo.c @@ -11,14 +11,10 @@ int TestGetNativeSystemInfo(int argc, char* argv[]) GetNativeSystemInfo(&sysinfo); -#if defined(NONAMELESSUNION) const UINT16 wProcessorArchitecture = sysinfo.DUMMYUNIONNAME.DUMMYSTRUCTNAME.wProcessorArchitecture; const UINT16 wReserved = sysinfo.DUMMYUNIONNAME.DUMMYSTRUCTNAME.wReserved; -#else - const UINT16 wProcessorArchitecture = sysinfo.wProcessorArchitecture; - const UINT16 wReserved = sysinfo.wReserved; -#endif + printf("SystemInfo:\n"); printf("\twProcessorArchitecture: %" PRIu16 "\n", wProcessorArchitecture); printf("\twReserved: %" PRIu16 "\n", wReserved); diff --git a/winpr/libwinpr/wtsapi/wtsapi_win32.c b/winpr/libwinpr/wtsapi/wtsapi_win32.c index 41a8e132c..8597fce10 100644 --- a/winpr/libwinpr/wtsapi/wtsapi_win32.c +++ b/winpr/libwinpr/wtsapi/wtsapi_win32.c @@ -671,13 +671,7 @@ BOOL Win32_WTSVirtualChannelPurge_Internal(HANDLE hChannelHandle, ULONG IoContro ntstatus = NtWaitForSingleObject(pChannel->hFile, 0, 0); if (ntstatus >= 0) - { -#if defined(NONAMELESSUNION) ntstatus = ioStatusBlock.DUMMYUNIONNAME.Status; -#else - ntstatus = ioStatusBlock.Status; -#endif - } } if (ntstatus == STATUS_BUFFER_OVERFLOW)