[Bug 26969] acmStreamConvert fails struct check on win64 while winecfg audio test

wine-bugs at winehq.org wine-bugs at winehq.org
Sat Apr 30 05:46:10 CDT 2011


http://bugs.winehq.org/show_bug.cgi?id=26969

Night Nord <NightNord at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|acmStreamConvert fails      |acmStreamConvert fails
                   |struct size check on win64  |struct check on win64 while
                   |while winecfg audio test    |winecfg audio test

--- Comment #2 from Night Nord <NightNord at gmail.com> 2011-04-30 05:46:09 CDT ---
Oh, I'm sorry, missed the line. Correct error lines are
dlls/msacm32/stream.c:112-115:

111     /* check that pointers have not been modified */
112     if (padsh->pbPreparedSrc != padsh->pbSrc ||
113         padsh->cbPreparedSrcLength < padsh->cbSrcLength ||
114         padsh->pbPreparedDst != padsh->pbDst ||
115         padsh->cbPreparedDstLength < padsh->cbDstLength) {

Also, I've hacked stream.c adding TRACE to acmStreamPrepareHeader with sizeof
outputs for ACMSTREAMHEADER and ACMDRVSTREAMHEADER, just after the comment:
316     /* Note: the ACMSTREAMHEADER and ACMDRVSTREAMHEADER structs are of same
317      * size. some fields are private to msacm internals, and are exposed
318      * in ACMSTREAMHEADER in the dwReservedDriver array
319      */

For win32 it is:
trace:msacm:acmStreamPrepareHeader sizeof(PACMDRVSTREAMHEADER) = 84,
sizeof(ACMSTREAMHEADER) = 84

For win64 it is:
trace:msacm:acmStreamPrepareHeader sizeof(PACMDRVSTREAMHEADER) = 144,
sizeof(ACMSTREAMHEADER) = 124

That's on gcc-4.6.0. There is similar reports from Fedora 15 users [1], which
is also using gcc-4.6.0 [2]. Probably some align issues?

I'll patch acmStreamConvert and acmStreamPrepareHeader to TRACE out this
pointer addresses, so it will be clear if they are changed due to memory
overwrite.

[1] http://forums.fedoraforum.org/showthread.php?t=262080
[2] http://fedoraproject.org/wiki/Features/GCC46

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list