LINUX.ORG.RU

История изменений

Исправление slovazap, (текущая версия) :

Сколько всего зря понаписано. Очевидно же - все дескрипторы которые не нужно передавать в вызываемый процесс, тем или иным способом закрываются, соответственно не управляющего сокета супервайзера, ни файлового дескриптора Секретного Файла в ребёнке доступно не будет.

При этом мы не можем ставить FD_CLOEXEC на каждый хендлер, открываемый в супервизоре, потому что он может понадобиться для целей супервизора в его форках

Во-первых, ты не видишь разницы в словах EXEC и FORK? Конечно же можем. Во-вторых, мы можем явно закрыть все дескрипторы кроме нужных перед exec. Даже есть специальный вызов closefrom который делает это быстро. В-третьих, даже если бы этих инструментов не было, мы бы просто сохраняли все открытые дескрипторы в массив и всегда могли их закрыть через него.

Исходная версия slovazap, :

Сколько всего зря понаписано. Очевидно же - все дескрипторы которые не нужно передавать в вызываемый процесс, тем или иным способом закрываются, соответственно не исправляющего сокета супервайзера, ни файлового дескриптора Секретного Файла в ребёнке доступно не будет.

При этом мы не можем ставить FD_CLOEXEC на каждый хендлер, открываемый в супервизоре, потому что он может понадобиться для целей супервизора в его форках

Во-первых, ты не видишь разницы в словах EXEC и FORK? Конечно же можем. Во-вторых, мы можем явно закрыть все дескрипторы кроме нужных перед exec. Даже есть специальный вызов closefrom который делает это быстро. В-третьих, даже если бы этих инструментов не было, мы бы просто сохраняли все открытые дескрипторы в массив и всегда могли их закрыть через него.