Stanzilla / WoWUIBugs

World of Warcraft UI Bug Tracker
153 stars 7 forks source link

Requesting item locations for a full equipment set (19 slots used) on Wrath on Mac causes the client to crash #511

Closed plusmouse closed 4 months ago

plusmouse commented 7 months ago

Running

/dump C_EquipmentSet.GetItemLocations(C_EquipmentSet.GetEquipmentSetIDs()[1])

on their client crashes the game. This happens on a clean login, and at any point during the session.

Dumping the set ids gives

Dump: value=C_EquipmentSet.GetEquipmentSetIDs()
[1]={
   [1]=1,
   [2]=0,
   [3]=2
 }

Notably running GetItemLocations on the second or third equipment set does NOT cause a crash, it is exclusively the first equipment set.

The info for the problematic equipment set is

07:06 Dump: value=C_EquipmentSet.GetEquipmentSetInfo(C_EquipmentSet.GetEquipmentSetIDs()[1])
07:06 [1]="SpellPower",
07:06 [2]=132129,
07:06 [3]=1,
07:06 [4]=false,
07:06 [5]=19,
07:06 [6]=2,
07:06 [7]=17,
07:06 [8]=0,
07:06 [9]=0

and

07:34 Dump: value=C_EquipmentSet.GetItemIDs(1)
07:34 [1]={
07:34   [1]=50026,
07:34   [2]=42045,
07:34   [3]=50113,
07:34   [4]=3342,
07:34   [5]=47603,
07:34   [6]=51908,
07:34   [7]=47062,
07:34   [8]=49894,
07:34   [9]=47585,
07:34   [10]=50107,
07:34   [11]=50399,
07:34   [12]=47224,
07:34   [13]=45929,
07:34   [14]=47041,
07:34   [15]=51332,
07:34   [16]=50028,
07:34   [17]=45314,
07:34   [18]=50454,
07:34   [19]=5976
07:34 }

Looking at the items none appear weird, mostly phase 3 and phase 4 equipment.

I've tested the equipment set APIs on my device and despite locking items, destroying items, putting items in banks, vendoring items none of it triggers a crash when requesting the item locations of the set using the items.

ghyatzo commented 7 months ago

I have the cursed client. I refrained from updating the sets in any way, fearing to lose the reproducibility of this bug. Last time I checked it still caused crashes. I remain available for any information on the character

ghyatzo commented 6 months ago

Update on what causing the crash. I have been able to reproduce the crash also for other equipment set, the condition is that the set needs to contain all 19 items (tabard and shirt included). At that point calling

\dump C_EquipmentSet.GetItemLocations(id)

causes an apple crash report.

I am on an M1 mac.

plusmouse commented 6 months ago

This issue has a another affected user https://github.com/moody/Dejunk/issues/190 They are also on a Mac, classic and have an equipment set with 19 items in it.

LordOfOtakus commented 6 months ago

I'll add my two cents, the Equipment Manager API appears to have been re-worked in Legion, where at that time, it was impossible to have more than 18 items equipped due to the removal of the secondary weapon slot in MoP. I would guess thats where the issue comes from. The crash log mentions that WoW reports a "stack buffer overflow" as the reason for crashing.

Cidan commented 4 months ago

I've had quite a few users over the years affected by this as well. For now, I've disabled use of the API in WotLK, but a fix for this hard crash would be great :)

LordOfOtakus commented 4 months ago

My forum post about this finally got a blue response, hopefully it can get figured out.

LordOfOtakus commented 4 months ago

Update: It doesn't crash for Intel Macs apparently. Only ARM Macs are affected.

LordOfOtakus commented 4 months ago

IMG_0580

plusmouse commented 4 months ago

That's great news :)

Meorawr commented 4 months ago

Fixed in pending - or possibly even most recently deployed - build.

LordOfOtakus commented 4 months ago

Fixed in the build deployed today.