Merge lp://qastaging/~mixxxdevelopers/mixxx/fixes-plugins-mempassing into lp://qastaging/mixxx/1.10

Proposed by William Good
Status: Merged
Merged at revision: 2881
Proposed branch: lp://qastaging/~mixxxdevelopers/mixxx/fixes-plugins-mempassing
Merge into: lp://qastaging/mixxx/1.10
Diff against target: 89 lines (+25/-7)
4 files modified
mixxx/plugins/soundsourcem4a/soundsourcem4a.h (+10/-4)
mixxx/plugins/soundsourcewv/soundsourcewv.h (+7/-1)
mixxx/src/soundsource.h (+3/-0)
mixxx/src/soundsourceproxy.cpp (+5/-2)
To merge this branch: bzr merge lp://qastaging/~mixxxdevelopers/mixxx/fixes-plugins-mempassing
Reviewer Review Type Date Requested Status
RJ Skerry-Ryan Approve
William Good Needs Fixing
Review via email: mp+78776@code.qastaging.launchpad.net

Description of the change

This fixes bug lp:814215, which blocks sensible distribution of an m4a-decoding plugin on Windows. Previously, memory was malloc'd by plugins and then free'd by the calling code to communicate the file extensions a plugin was willing to attempt to load. Because different C runtimes can use different structures in their heap allocation schemes, this can lead to access violations if memory is allocated by one CRT and freed by another, as can happen if (for instance) an executable is linked to one version of a CRT and a DSO is linked to another. This happens frequently on Windows because there are 2^846518694 (approx.) different versions of the MSVCRT in the wild.

The two plugins in the tree (FAAD and WavePack) have been updated with the freeing function exported.

Proposed for 1.10 because: it works and is necessary for Windows AAC decoding which would be way cool to have in 1.10 (finally).

To post a comment you must log in.
Revision history for this message
William Good (bkgood) wrote :

I'm thinking of moving a bunch of this duplicated plugin support code (being duplicated between plugins), let's hold off until then.

review: Needs Fixing
Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

Looks good to me.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
The diff is not available at this time. You can reload the page or download it.

Subscribers

People subscribed via source and target branches

to all changes: