Opened 2 years ago

Closed 19 months ago

#10342 closed defect (fixed)

SCUMM: UB & type system undermining in save/load code

Reported by: csnover Owned by: csnover
Priority: normal Component: Engine: SCUMM
Keywords: has-pull-request Cc:
Game:

Description

The SCUMM engine save/load code triggers UB by trying to get the offsets of non-POD members, and subverts the type system by casting to void * during serialisation. Already I found one bug in SCUMM HE where a SpriteInfo** was being treated as SpriteInfo* for game versions < 64, and this was compiling even though it is wrong because it was getting passed into a parameter of type void *. So all this needs to be fixed to use the Common::Serializer and to stop using void *.

Change History (3)

comment:1 by csnover, 2 years ago

Owner: set to csnover

comment:2 by csnover, 2 years ago

Keywords: has-pull-request added

comment:3 by bonki, 19 months ago

Resolution: fixed
Status: newclosed

As Colin's PR is merged I believe we can close this.

Note: See TracTickets for help on using tickets.