View Revisions: Issue #35991

Summary 0035991: Crash (sigsegv) or Exception caused by TProcessUtf8
Revision 2019-08-21 00:14 by Martin Friebe
Description Compiling either
 - LazUtils,
 - or the RTL
with -O4 will cause TProcessUtf8 to fail.

It can either
- raise an exception
- write to memory out of bounds, causing random errors (including SigSegv) at a later time.

This is caused by trying to "guess" the byte offset of a private field and modify it.

However with -O4 FPC may change the order of fields.

This is also extremely unstable with regards to future changes in fpc.
This may also fail, if WPO is used (not verified).


This is a result of the fix for 0028991 revision 50595
Revision 2019-08-21 00:13 by Martin Friebe
Description Compiling either
 - LazUtils,
 - or the RTL
with -O4 will cause TProcessUtf8 to fail.

It can either
- raise an exception
- write to memory out of bounds, causing random errors (including SigSegv) at a later time.

This is caused by trying to "guess" the byte offset of a private field and modify it.

However with -O4 FPC may change the order of fields.

This is also extremely unstable with regards to future changes in fpc.
This may also fail, if WPO is used (not verified).


This is a result of the fix for #50595