Opened 8 years ago
Closed 8 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 , 8 years ago
| Owner: | set to |
|---|
comment:2 by , 8 years ago
| Keywords: | has-pull-request added |
|---|
comment:3 by , 8 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