linux: Fix stack-related sub-process shutdown crashes (fixes #3912)

On Linux systems the stack frame reference canary will be purposely
changed when forking sub-processes (see https://crbug.com/40181003).
To avoid sub-process shutdown crashes the NO_STACK_PROTECTOR
annotation must be added to all functions in the call stack leading to
CefExecuteProcess(). Applications that cannot add this annotation must
instead pass the `--change-stack-guard-on-fork=disable` command-line
flag.
This commit is contained in:
Marshall Greenblatt
2025-03-31 14:03:57 -04:00
parent b2f5ab6cd2
commit 5b18ca7d3f
10 changed files with 41 additions and 6 deletions

View File

@ -522,9 +522,9 @@ def dict_to_str(dict):
# Attribute keys allowed in CEF metadata comments.
COMMON_ATTRIB_KEYS = ('added', 'removed')
CLASS_ATTRIB_KEYS = COMMON_ATTRIB_KEYS + ('no_debugct_check', 'source')
FUNCTION_ATTRIB_KEYS = COMMON_ATTRIB_KEYS + ('api_hash_check', 'capi_name',
'count_func', 'default_retval',
'index_param', 'optional_param')
FUNCTION_ATTRIB_KEYS = COMMON_ATTRIB_KEYS + (
'api_hash_check', 'capi_name', 'count_func', 'default_retval',
'index_param', 'no_stack_protector', 'optional_param')
# regex for matching comment-formatted attributes
_cre_attrib = r'/\*--cef\(([A-Za-z0-9_ ,=:\n]{0,})\)--\*/'