WineHQ
Bug Tracking Database – Bug 34305

 Bugzilla

 

Last modified: 2013-11-15 13:39:51 UTC  

League of Legends 3.10.13_07_26_19_59: page fault in read_map()

Bug 34305 - League of Legends 3.10.13_07_26_19_59: page fault in read_map()
League of Legends 3.10.13_07_26_19_59: page fault in read_map()
Status: CLOSED FIXED
AppDB: Show Apps affected by this bug
Product: Wine
Classification: Unclassified
Component: winmm&mci
1.7.0
x86 Linux
: P2 normal
: ---
Assigned To: Mr. Bugs
:
Depends on:
Blocks:
  Show dependency tree
 
Reported: 2013-08-19 21:39 UTC by Fabrice Bauzac
Modified: 2013-11-15 13:39 UTC (History)
0 users

See Also:
Regression SHA1:
Fixed by SHA1: 21e0f739bed023a903866a145ee75bdc96e8bce8
Distribution: ---
Staged patchset:


Attachments
The page fault's backtrace. (21.32 KB, text/plain)
2013-08-19 21:39 UTC, Fabrice Bauzac
Details
Proposed patch. (946 bytes, patch)
2013-08-19 22:44 UTC, Fabrice Bauzac
Details | Diff
Patch which also targets WID_Open(). (1.28 KB, patch)
2013-08-20 12:12 UTC, Fabrice Bauzac
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Fabrice Bauzac 2013-08-19 21:39:48 UTC
Created attachment 45668 [details]
The page fault's backtrace.

Hello,

I have just compiled the latest git wine version.
wine-1.7.0-114-g73aef40

When I do
cd ~/lol/LoL_Prefix/drive_c/Riot\ Games/League\ of\ Legends && wine ./lol.launcher.exe
the LoL welcome window appears, with its prominent "Play" button.

Then when I click the "Play" button, a new large window appears with an "Account Login" form that prompts for the account and password, and almost simultaneously the Wine "Program Error" window appears, reporting a crash at dlls/winmm/waveform.c:273 (see attached file backtrace.txt).

According to traces I added, I think I have located the problem.

Except from waveform.c's WOD_Open() function:

        if(WINMM_IsMapper(info->req_device)){
            devices = g_out_mapper_devices;
            mmdevice = read_map(g_out_map, 0);
            lock = &g_devthread_lock;
            internal_index = MAPPER_INDEX;

When the user requests the WAVE_MAPPER, the code calls read_map() with device index 0 without first checking whether the number of devices is greater than 0.

Could you please have a look?

Thanks!

Best regards
Fabrice
Comment 1 Fabrice Bauzac 2013-08-19 22:44:28 UTC
Created attachment 45669 [details]
Proposed patch.

In this proposed patch, we handle this case by returning MMSYSERR_BADDEVICEID.
Comment 2 Fabrice Bauzac 2013-08-20 12:12:57 UTC
Created attachment 45671 [details]
Patch which also targets WID_Open().
Comment 3 Austin English 2013-08-21 14:14:53 UTC
http://source.winehq.org/git/wine.git/commitdiff/21e0f739bed023a903866a145ee75bdc96e8bce8

Patch committed, thanks!
Comment 4 Alexandre Julliard 2013-08-30 13:05:07 UTC
Closing bugs fixed in 1.7.1.
Comment 5 Alexandre Julliard 2013-11-15 13:39:51 UTC
Removing 1.6.x milestone from bugs included in 1.6.1.


Privacy Policy
If you have a privacy inquiry regarding this site, please write to [email protected]

Hosted By CodeWeavers