From 737f5a2036e71288e3b3ff4783731356e67f284e Mon Sep 17 00:00:00 2001 From: Armin Novak Date: Fri, 27 Aug 2021 12:47:46 +0200 Subject: [PATCH] Fixed argument const correctness --- include/freerdp/graphics.h | 8 ++++---- include/freerdp/peer.h | 3 ++- libfreerdp/core/graphics.c | 28 ++++++++++++++++++++-------- libfreerdp/gdi/graphics.c | 2 +- server/Windows/wf_peer.c | 3 ++- server/proxy/pf_graphics.c | 2 +- server/shadow/shadow_client.c | 2 +- winpr/include/winpr/wtsapi.h | 4 ++-- winpr/libwinpr/wtsapi/wtsapi.c | 6 +++--- 9 files changed, 36 insertions(+), 22 deletions(-) diff --git a/include/freerdp/graphics.h b/include/freerdp/graphics.h index 68f1e7da6..f788308da 100644 --- a/include/freerdp/graphics.h +++ b/include/freerdp/graphics.h @@ -112,7 +112,7 @@ extern "C" FREERDP_API rdpPointer* Pointer_Alloc(rdpContext* context); /* Glyph Class */ - typedef BOOL (*pGlyph_New)(rdpContext* context, const rdpGlyph* glyph); + typedef BOOL (*pGlyph_New)(rdpContext* context, rdpGlyph* glyph); typedef void (*pGlyph_Free)(rdpContext* context, rdpGlyph* glyph); typedef BOOL (*pGlyph_Draw)(rdpContext* context, const rdpGlyph* glyph, INT32 x, INT32 y, INT32 w, INT32 h, INT32 sx, INT32 sy, BOOL fOpRedundant); @@ -158,9 +158,9 @@ extern "C" UINT32 paddingA[16 - 4]; /* 4 */ }; - FREERDP_API void graphics_register_bitmap(rdpGraphics* graphics, rdpBitmap* bitmap); - FREERDP_API void graphics_register_pointer(rdpGraphics* graphics, rdpPointer* pointer); - FREERDP_API void graphics_register_glyph(rdpGraphics* graphics, rdpGlyph* glyph); + FREERDP_API void graphics_register_bitmap(rdpGraphics* graphics, const rdpBitmap* bitmap); + FREERDP_API void graphics_register_pointer(rdpGraphics* graphics, const rdpPointer* pointer); + FREERDP_API void graphics_register_glyph(rdpGraphics* graphics, const rdpGlyph* glyph); FREERDP_API rdpGraphics* graphics_new(rdpContext* context); FREERDP_API void graphics_free(rdpGraphics* graphics); diff --git a/include/freerdp/peer.h b/include/freerdp/peer.h index be731a4ef..d8dde1a21 100644 --- a/include/freerdp/peer.h +++ b/include/freerdp/peer.h @@ -48,7 +48,8 @@ typedef void (*psPeerDisconnect)(freerdp_peer* peer); typedef BOOL (*psPeerCapabilities)(freerdp_peer* peer); typedef BOOL (*psPeerPostConnect)(freerdp_peer* peer); typedef BOOL (*psPeerActivate)(freerdp_peer* peer); -typedef BOOL (*psPeerLogon)(freerdp_peer* peer, SEC_WINNT_AUTH_IDENTITY* identity, BOOL automatic); +typedef BOOL (*psPeerLogon)(freerdp_peer* peer, const SEC_WINNT_AUTH_IDENTITY* identity, + BOOL automatic); typedef BOOL (*psPeerAdjustMonitorsLayout)(freerdp_peer* peer); typedef BOOL (*psPeerClientCapabilities)(freerdp_peer* peer); diff --git a/libfreerdp/core/graphics.c b/libfreerdp/core/graphics.c index b25ac9232..cd1c20c90 100644 --- a/libfreerdp/core/graphics.c +++ b/libfreerdp/core/graphics.c @@ -38,7 +38,7 @@ rdpBitmap* Bitmap_Alloc(rdpContext* context) if (bitmap) { - CopyMemory(bitmap, graphics->Bitmap_Prototype, sizeof(rdpBitmap)); + *bitmap = *graphics->Bitmap_Prototype; bitmap->data = NULL; } @@ -84,9 +84,13 @@ BOOL Bitmap_SetDimensions(rdpBitmap* bitmap, UINT16 width, UINT16 height) return TRUE; } -void graphics_register_bitmap(rdpGraphics* graphics, rdpBitmap* bitmap) +void graphics_register_bitmap(rdpGraphics* graphics, const rdpBitmap* bitmap) { - CopyMemory(graphics->Bitmap_Prototype, bitmap, sizeof(rdpBitmap)); + WINPR_ASSERT(graphics); + WINPR_ASSERT(graphics->Bitmap_Prototype); + WINPR_ASSERT(bitmap); + + *graphics->Bitmap_Prototype = *bitmap; } /* Pointer Class */ @@ -99,7 +103,7 @@ rdpPointer* Pointer_Alloc(rdpContext* context) if (pointer) { - CopyMemory(pointer, graphics->Pointer_Prototype, sizeof(rdpPointer)); + *pointer = *graphics->Pointer_Prototype; } return pointer; @@ -118,9 +122,13 @@ static BOOL Pointer_New(rdpContext* context, rdpPointer* pointer) } /* static method */ -void graphics_register_pointer(rdpGraphics* graphics, rdpPointer* pointer) +void graphics_register_pointer(rdpGraphics* graphics, const rdpPointer* pointer) { - CopyMemory(graphics->Pointer_Prototype, pointer, sizeof(rdpPointer)); + WINPR_ASSERT(graphics); + WINPR_ASSERT(graphics->Pointer_Prototype); + WINPR_ASSERT(pointer); + + *graphics->Pointer_Prototype = *pointer; } /* Glyph Class */ @@ -170,9 +178,13 @@ rdpGlyph* Glyph_Alloc(rdpContext* context, INT32 x, INT32 y, UINT32 cx, UINT32 c return glyph; } -void graphics_register_glyph(rdpGraphics* graphics, rdpGlyph* glyph) +void graphics_register_glyph(rdpGraphics* graphics, const rdpGlyph* glyph) { - CopyMemory(graphics->Glyph_Prototype, glyph, sizeof(rdpGlyph)); + WINPR_ASSERT(graphics); + WINPR_ASSERT(graphics->Glyph_Prototype); + WINPR_ASSERT(glyph); + + *graphics->Glyph_Prototype = *glyph; } /* Graphics Module */ diff --git a/libfreerdp/gdi/graphics.c b/libfreerdp/gdi/graphics.c index fa529af97..e50cce424 100644 --- a/libfreerdp/gdi/graphics.c +++ b/libfreerdp/gdi/graphics.c @@ -215,7 +215,7 @@ static BOOL gdi_Bitmap_SetSurface(rdpContext* context, rdpBitmap* bitmap, BOOL p } /* Glyph Class */ -static BOOL gdi_Glyph_New(rdpContext* context, const rdpGlyph* glyph) +static BOOL gdi_Glyph_New(rdpContext* context, rdpGlyph* glyph) { BYTE* data; gdiGlyph* gdi_glyph; diff --git a/server/Windows/wf_peer.c b/server/Windows/wf_peer.c index 6726dd03f..f01865908 100644 --- a/server/Windows/wf_peer.c +++ b/server/Windows/wf_peer.c @@ -141,7 +141,8 @@ static BOOL wf_peer_activate(freerdp_peer* client) return TRUE; } -static BOOL wf_peer_logon(freerdp_peer* client, SEC_WINNT_AUTH_IDENTITY* identity, BOOL automatic) +static BOOL wf_peer_logon(freerdp_peer* client, const SEC_WINNT_AUTH_IDENTITY* identity, + BOOL automatic) { wfreerdp_server_peer_callback_event(((rdpContext*)client->context)->peer->pId, FREERDP_SERVER_WIN_SRV_CALLBACK_EVENT_AUTH); diff --git a/server/proxy/pf_graphics.c b/server/proxy/pf_graphics.c index 18a810396..f787dca78 100644 --- a/server/proxy/pf_graphics.c +++ b/server/proxy/pf_graphics.c @@ -92,7 +92,7 @@ static BOOL pf_Pointer_SetPosition(rdpContext* context, UINT32 x, UINT32 y) } /* Glyph Class */ -static BOOL pf_Glyph_New(rdpContext* context, const rdpGlyph* glyph) +static BOOL pf_Glyph_New(rdpContext* context, rdpGlyph* glyph) { return TRUE; } diff --git a/server/shadow/shadow_client.c b/server/shadow/shadow_client.c index 54cba4fd9..0c0b78eeb 100644 --- a/server/shadow/shadow_client.c +++ b/server/shadow/shadow_client.c @@ -601,7 +601,7 @@ static BOOL shadow_client_activate(freerdp_peer* peer) return shadow_client_refresh_rect(&client->context, 0, NULL); } -static BOOL shadow_client_logon(freerdp_peer* peer, SEC_WINNT_AUTH_IDENTITY* identity, +static BOOL shadow_client_logon(freerdp_peer* peer, const SEC_WINNT_AUTH_IDENTITY* identity, BOOL automatic) { char* user = NULL; diff --git a/winpr/include/winpr/wtsapi.h b/winpr/include/winpr/wtsapi.h index 21d86fef7..dd1714e93 100644 --- a/winpr/include/winpr/wtsapi.h +++ b/winpr/include/winpr/wtsapi.h @@ -1490,14 +1490,14 @@ struct _WtsApiFunctionTable typedef struct _WtsApiFunctionTable WtsApiFunctionTable; typedef WtsApiFunctionTable* PWtsApiFunctionTable; -typedef PWtsApiFunctionTable(CDECL* INIT_WTSAPI_FN)(void); +typedef const WtsApiFunctionTable*(CDECL* INIT_WTSAPI_FN)(void); #ifdef __cplusplus extern "C" { #endif - WINPR_API BOOL WTSRegisterWtsApiFunctionTable(PWtsApiFunctionTable table); + WINPR_API BOOL WTSRegisterWtsApiFunctionTable(const WtsApiFunctionTable* table); WINPR_API const CHAR* WTSErrorToString(UINT error); WINPR_API const CHAR* WTSSessionStateToString(WTS_CONNECTSTATE_CLASS state); diff --git a/winpr/libwinpr/wtsapi/wtsapi.c b/winpr/libwinpr/wtsapi/wtsapi.c index 5a4fdf994..7e3d07a51 100644 --- a/winpr/libwinpr/wtsapi/wtsapi.c +++ b/winpr/libwinpr/wtsapi/wtsapi.c @@ -46,7 +46,7 @@ static HMODULE g_WtsApiModule = NULL; -static PWtsApiFunctionTable g_WtsApi = NULL; +static const WtsApiFunctionTable* g_WtsApi = NULL; #if defined(_WIN32) static HMODULE g_WtsApi32Module = NULL; @@ -674,7 +674,7 @@ const CHAR* WTSSessionStateToString(WTS_CONNECTSTATE_CLASS state) return "INVALID_STATE"; } -BOOL WTSRegisterWtsApiFunctionTable(PWtsApiFunctionTable table) +BOOL WTSRegisterWtsApiFunctionTable(const WtsApiFunctionTable* table) { /* Use InitOnceExecuteOnce here as well - otherwise a table set with this function is overriden on the first use of a WTS* API call (due to @@ -777,7 +777,7 @@ static BOOL CALLBACK InitializeWtsApiStubs(PINIT_ONCE once, PVOID param, PVOID* WINPR_UNUSED(context); if (param) { - g_WtsApi = (PWtsApiFunctionTable)param; + g_WtsApi = (const WtsApiFunctionTable*)param; return TRUE; }