Opened 7 years ago
Closed 7 years 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 |
Version: | 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 , 7 years ago
Owner: | set to |
---|
comment:2 by , 7 years ago
Keywords: | has-pull-request added |
---|
comment:3 by , 7 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
As Colin's PR is merged I believe we can close this.
Note:
See TracTickets
for help on using tickets.
https://github.com/scummvm/scummvm/pull/1077