Skip to content

Dynamically linking to the MSVC runtime is very dangerous. #110

Description

@Kaldaien

I would like to bring to your attention that the officially compiled distribution of NVIDIA Streamline dynamically links to MSVC.

Various game developers are shipping their games to stores with MSVC DLLs in the game directory rather than relying on the system-wide redistributable version and this is an unsafe practice unless Streamline's build config is changed.

During testing, this does not pose any problems, both Streamline and the game load the system DLL. When the game ships and some yoho pushing files to the stores decides they don't want to run the redistributable installer and would rather explicitly include MSVC DLLs, now Streamline becomes a ticking timebomb because it is dynamically linked.

Crimson Desert crashes randomly in Streamline code on the Epic Games Store version, because it ships with an older version of MSVC DLLs than the version of Streamline it was built for targets. The Steam version uses the system-wide DLLs and Streamline causes no crashes in it.

    This behavior creates store-specific instability, entirely preventable and arguably the fault of NVIDIA!

I am especially concerned about this problem now that Streamline can Over-the-Air update itself. In scenarios where the developer correctly distributed an MSVC DLL compatible with both itself and Streamline, the game will be stable up until the point the driver decides to load-in an updated version of the Streamline DLLs with dependencies on newer versions of MSVC.



Please statically link MSVC by default.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions