Я понимаю, что переменные окружения и аргументы командной строки хранятся в верхней части стека. Я подтвердил, что печатаю адрес argv и env.RLIMIT_STACK, включая переменные окружения и аргументы командной строки или эксклюзивные
Я также понимаю, что существует ограничение на размер стека для процесса, который мы можем печатать с использованием ulimit -s
или используя функцию getrlimit
с RLIMIT_STACK
в качестве первого аргумента.
Но некоторые тексты показывают переменные среды и аргументы командной строки, как если бы они были сохранены в некоторых отдельных частях схемы виртуальной памяти.
Мой вопрос: ли лимит на стек применяется к фактическому стеку программ, исключая переменные окружения и аргументы командной строки или включительно?
Попытка установить 'rlimit_stack' после [Stack Clash] (http://www.openwall.com/lists/oss-security/2017/06/19/1) исправления могут привести к сбою или смежным проблемам. Также см. Red Hat [Issue 1463241] (https://bugzilla.redhat.com/show_bug.cgi?id=1463241) – jww