[NTOS][NDK][RTL] A bunch of 'wrong size' fixes
[reactos.git] / sdk / lib / rtl / memstream.c
index 0549424..51dc8e6 100644 (file)
@@ -205,6 +205,7 @@ RtlReadOutOfProcessMemoryStream(
     ULONG CopyLength;
     PRTL_MEMORY_STREAM Stream = IStream_To_RTL_MEMORY_STREAM(This);
     SIZE_T Available = (PUCHAR)Stream->End - (PUCHAR)Stream->Current;
+    SIZE_T LocalBytesRead = 0;
 
     if (BytesRead)
         *BytesRead = 0;
@@ -218,10 +219,14 @@ RtlReadOutOfProcessMemoryStream(
                                  Stream->Current,
                                  Buffer,
                                  CopyLength,
-                                 BytesRead);
+                                 &LocalBytesRead);
 
     if (NT_SUCCESS(Status))
-        Stream->Current = (PUCHAR)Stream->Current + *BytesRead;
+    {
+        Stream->Current = (PUCHAR)Stream->Current + LocalBytesRead;
+        if (BytesRead)
+            *BytesRead = (ULONG)LocalBytesRead;
+    }
 
     return HRESULT_FROM_WIN32(RtlNtStatusToDosError(Status));
 }