2010-11-18 2 views
0

Это сумеречная зона. Мы столкнулись с этим на Ubuntu. Похоже, что errno в родительском процессе был изменен его дочерним процессом. Мы видим это в коде, который выполняется до main, в конструкторе для общей библиотеки.Возможно ли, что дочерний процесс может изменить память в родительском?

Возможно ли это? Кто-нибудь видел что-нибудь подобное?

Если errno находится в vdso, может быть, эти страницы не сопоставлены с дочерним элементом, пока main не будет готов к запуску? Это кажется сумасшедшим.

ответ

3

Возможно ли, что дочерний процесс может изменить память в родительском?

Только если она исходит от vfork() или clone() вызова с CLONE_VM (не от fork() вызова), или если память общая памяти (mmap() ред MAP_SHARED отсчетов памяти как разделяемая память).

Смежные вопросы