Hercules icon indicating copy to clipboard operation
Hercules copied to clipboard

Stops tsd client crashing if party inviter is disguised.

Open bWolfie opened this issue 7 years ago • 7 comments

Pull Request Prelude

Changes Proposed

Stops disguised party invites if disguised. If the party inviter is disguised, they can crash anyone's client just by inviting them to their party (not sure if it will crash on partylock or if player already has party).

Confirmed to crash the target's client in 20160113.

Affected Branches:

  • [x] master
  • [x] stable

Issues addressed:

Known Issues and TODO List

  • [ ] Test in other clients to see if it is a packetver related thing.

bWolfie avatar Aug 21 '18 21:08 bWolfie

This change is Reviewable

HerculesWSAPI avatar Aug 21 '18 21:08 HerculesWSAPI

caption said prevent invite if party leader disguised, but pr really prevent invites if party inviter disguised. what is correct caption or code?

4144 avatar Aug 21 '18 22:08 4144

It should be the party inviter.

bWolfie avatar Aug 21 '18 23:08 bWolfie

If someone else can test for which client it crashes, it would be great.

dastgirp avatar Aug 22 '18 16:08 dastgirp

If someone else can test for which client it crashes, it would be great.

yep crashing here using current Hercules~

MrKeiKun avatar Sep 25 '20 05:09 MrKeiKun

look like need rebase and conflict fixing

4144 avatar Sep 25 '20 05:09 4144

I did some testing with 2016-01-13cRagexeRE and the issue isn't related to the invitation itself. The actual problem is opening the party window. As of yet I wasn't able to find the real culprit since the crash doesn't occur every time the party window is opened. Actually it doesn't always happen under identical circumstances. :disappointed:

However, prevent disguised characters from inviting other characters doesn't fix anything and thus this PR brings no benefit.

Kenpachi2k13 avatar Nov 03 '20 20:11 Kenpachi2k13

This crash is caused by a missing check in the party logic of the client for when getting the Actor Object by AID what type of object it is. They think it's of type "0" instead of "1" but both have different vftables and different adresses / offsets for their HP bar information, which leads to an memory access violation for when you have disguised people in your party.

Can pretty much only be solved by modifying the client with your own asm. :)

EDIT: Also it's true that this PR thus makes little sense, as the existance of a disguised char itself is the issue in the party, not the invite stemming from it.

Closing it thus.

skyleo avatar Mar 31 '24 17:03 skyleo