https://git.reactos.org/?p=reactos.git;a=commitdiff;h=141daf4de84fba27c121c3cc4324cb6290c52596

commit 141daf4de84fba27c121c3cc4324cb6290c52596
Author:     Hermès Bélusca-Maïto <[email protected]>
AuthorDate: Sat Oct 29 00:26:41 2022 +0200
Commit:     Hermès Bélusca-Maïto <[email protected]>
CommitDate: Sat Oct 29 17:36:09 2022 +0200

    [CSRLIB] Add comments regarding the calculation of the data and total 
message lengths in CsrClientCallServer().
---
 subsystems/csr/csrlib/connect.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/subsystems/csr/csrlib/connect.c b/subsystems/csr/csrlib/connect.c
index c93f80075d7..9765ac19a75 100644
--- a/subsystems/csr/csrlib/connect.c
+++ b/subsystems/csr/csrlib/connect.c
@@ -386,10 +386,13 @@ CsrClientCallServer(
 
     /* Fill out the Port Message Header */
     ApiMessage->Header.u2.ZeroInit = 0;
-    ApiMessage->Header.u1.s1.TotalLength = (CSHORT)DataLength +
-        sizeof(CSR_API_MESSAGE) - sizeof(ApiMessage->Data); // 
FIELD_OFFSET(CSR_API_MESSAGE, Data) + DataLength;
+    /* DataLength = user_data_size + anything between
+     * header and data, including intermediate padding */
     ApiMessage->Header.u1.s1.DataLength = (CSHORT)DataLength +
-        FIELD_OFFSET(CSR_API_MESSAGE, Data) - sizeof(ApiMessage->Header); // 
ApiMessage->Header.u1.s1.TotalLength - sizeof(PORT_MESSAGE);
+        FIELD_OFFSET(CSR_API_MESSAGE, Data) - sizeof(ApiMessage->Header);
+    /* TotalLength = header_size + DataLength + any structure trailing padding 
*/
+    ApiMessage->Header.u1.s1.TotalLength = (CSHORT)DataLength +
+        sizeof(CSR_API_MESSAGE) - sizeof(ApiMessage->Data);
 
     /* Fill out the CSR Header */
     ApiMessage->ApiNumber = ApiNumber;

Reply via email to