Remix.run Logo
rincebrain a day ago

The example I gave in there is of adding sentinel values in your data, so you can check the constants in your data structures later and go "oh, this is overwritten with garbage" versus "oh, this is one or two bits off". I would imagine plumbing things like that through most common structures is what was done there, though I haven't done the archaeology to find out, because Firefox is an enormous codebase to try and find one person's commits from several years ago in.

kevincox 8 hours ago | parent | next [-]

This doesn't always protect against out-of-bounds writes. Although if these sentinel values are in read only memory mappings it probably gets pretty close. (Especially if you consider kernel memory corruption a "bitflip".)

patrulek 18 hours ago | parent | prev [-]

But it would be also possible that sentinel value used for comparison changed because of bitflip, not data structure used by program.