Skip to content

Stable 1.83.19 Hotfix#880

Open
neon-nyan wants to merge 14 commits into
stablefrom
hotfix-1.83.19-stable
Open

Stable 1.83.19 Hotfix#880
neon-nyan wants to merge 14 commits into
stablefrom
hotfix-1.83.19-stable

Conversation

@neon-nyan
Copy link
Copy Markdown
Member

UpdateIsAvailable-Campaign

What's changed? - 1.83.19

Full Changelog: CL-v1.83.18...CL-v1.83.19

Code Signing Policy

Free code signing provided by SignPath.io, certificate by SignPath Foundation

  • This program will not transfer any information to other networked systems.
  • Read our full Privacy Policy
  • Also read our Third Party Notices for license used by third party libraries that we use.

@socket-security
Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatedmicrosoft.web.webview2@​1.0.3912.50 ⏵ 1.0.3967.483610090100100
Updatedmicrosoft.windowsappsdk.foundation@​2.0.20 ⏵ 2.0.21361009010090
Updatedmicrosoft.windowsappsdk.interactiveexperiences@​2.0.12 ⏵ 2.0.13361009010090
Updatedmicrosoft.windowsappsdk.winui@​2.0.12 ⏵ 2.1.0361009010070
Updatedmicrosoft.extensions.logging.abstractions@​10.0.7 ⏵ 10.0.8431009010070
Updatedmicrosoft.windowsappsdk.ai@​2.0.185 ⏵ 2.1.107010010010090
Addedmicrosoft.net.illink.tasks@​10.0.89010010010070
Updatedmicrosoft.extensions.dependencyinjection@​10.0.7 ⏵ 10.0.8961009010070
Updatedmicrosoft.extensions.dependencyinjection.abstractions@​10.0.7 ⏵ 10.0.8981009010070
Updatedmicrosoft.extensions.logging@​10.0.7 ⏵ 10.0.8981009010070
Updatedmicrosoft.extensions.options@​10.0.7 ⏵ 10.0.8931009010070
Updatedmicrosoft.extensions.primitives@​10.0.7 ⏵ 10.0.8991009010070
Updatedmicrosoft.win32.systemevents@​10.0.7 ⏵ 10.0.8961009010070
Updatedsystem.io.hashing@​10.0.7 ⏵ 10.0.8971009010070
Updatedsystem.security.cryptography.protecteddata@​10.0.7 ⏵ 10.0.8991009010070
Updatedsystem.commandline@​2.0.7 ⏵ 2.0.87310090100100
Updatedsentry@​6.5.0 ⏵ 6.6.08910090100100
Updatedgoogle.protobuf@​3.34.1 ⏵ 3.35.09710090100100
Updatedmarkdig.signed@​1.1.3 ⏵ 1.2.09610090100100
Updatedmicrosoft.windows.ai.machinelearning@​2.0.300 ⏵ 2.1.19310090 +210090
Updatedmicrosoft.windowsappsdk@​2.0.1 ⏵ 2.1.31001009010090
Updatedmicrosoft.windowsappsdk.base@​2.0.3 ⏵ 2.0.41001009010090
Updatedmicrosoft.windowsappsdk.dwrite@​2.0.26041403 ⏵ 2.1.0971009010090
Updatedmicrosoft.windowsappsdk.ml@​2.0.300 ⏵ 2.1.11001009010090
Updatedmicrosoft.windowsappsdk.widgets@​2.0.4 ⏵ 2.0.5981009010090
Updatedsystem.drawing.common@​10.0.7 ⏵ 10.0.89510090100100
Updatedvelopack@​0.0.1298 ⏵ 1.1.193 +310090100100
Updatedcostura.fody@​6.1.0 ⏵ 6.2.09810090100100
Updatedmicrosoft.windowsappsdk.runtime@​2.0.1 ⏵ 2.1.310010010010090

View full report

Comment on lines +329 to +332
// Fall back to 128-bit vectors
else if (Vector128.IsHardwareAccelerated)
{
long offsetRemained = CBufferSize % Vector128<byte>.Count;
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: The SIMD loop processes uninitialized ArrayPool memory when reading the end of a file, causing the patched output file to be corrupted.
Severity: HIGH

Suggested Fix

The SIMD addition loops should be modified to only process the number of bytes actually read into the oldData buffer, which is availableInputBytes. Alternatively, the rented ArrayPool buffer could be zero-initialized before use to prevent processing garbage data.

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent. Verify if this is a real issue. If it is, propose a fix; if not, explain why it's
not valid.

Location: CollapseLauncher/Classes/RepairManagement/BSDiff.cs#L329-L332

Potential issue: In the `BSDiff.cs` patching logic, when processing the end of an input
file, the number of bytes read into the `oldData` buffer (`availableInputBytes`) can be
less than the buffer's full size (`CBufferSize`). However, the subsequent SIMD
processing loops iterate over the entire `oldData` buffer, including the uninitialized
portion containing garbage data from the `ArrayPool`. This garbage data is then added to
the `newData` buffer and written to the output file, causing file corruption. This issue
occurs whenever the patching process reaches the end of the input file.

Did we get this right? 👍 / 👎 to inform future reviews.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant