February 2026

S M T W T F S
1234567
8 9101112 1314
15161718192021
22 232425262728

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Thursday, September 8th, 2005 11:03 am
Обнаружил баг в mod_ssl от апача (т.е. он там давно, просто на сайте он обнаружился), разработчикам mod_ssl он, кажется, по барабану. Как починить, сам сообразить пока не могу. Sucks...
Thursday, September 8th, 2005 08:29 am (UTC)
Как починить, как починить? Не делать free в хэндлере сигнала. Либо ставить там флажок, который проверять после возвращения из write, либо убедиться что контекст размещается в апачевских пулах памяти (для чего при сборке ssl переопредлеять OPENSSL_malloc, и положиться на пулы на предмет очистки.
Thursday, September 8th, 2005 10:31 am (UTC)
Не делать free в асинхронном обработчике. А флажок всегда можно найти куда поставить. Либо завести дополнительное поле в контексте, либо заюзать неиспользуемый бит в одном из имеющихся флаговых полей, либо в какой-то вышележащей структуре данных рядом с указателем на этот контекст.
Thursday, September 8th, 2005 11:07 am (UTC)
Почитай Signal FAQ из RU.UNIX.PROG. Там написано что можно делать из обработчиков сигналов, и что из него делаеть не следует.
Видимо, разработчики mod_ssl этого документа не читали. Вообще обработчик сигнала нужно ставить так, чтобы он системный вызов write прерывал. И close_connection ставить когда write вернет соответствующий код ошибки.