[devel] Q: CONFIG_PSI_DEFAULT_DISABLED=y
Alexey Sheplyakov
asheplyakov на basealt.ru
Ср Сен 8 13:47:35 MSK 2021
On 08.09.2021 14:14, Denis Medvedev wrote:
> В Wed, 8 Sep 2021 13:17:06 +0400
>>> Вот мне бы интересно было, если бы malloc мог (при включении
>>> какой-либо опции) при отсутствии памяти ждать ее появления ,
>>> выдавая процессу SIGTSTP.
>>
>> Сколько примерно времени займёт адаптация userspace к новому
>> поведению? В частности, как определить те места, где ответ "сейчас
>> нет, жду" заведомо неприемлем?
> "сейчас нет, жду" - это не ответ, не код возврата, это поведение.
Тогда это ещё хуже.
> А почему вообще userspace это интересно?
1. Потому что время имеет значение.
2. Приход сигнала, в том месте, где его не ожидает - это очень, очень плохо.
> Ему malloc возвратит память - чаще чем обычно. И всё. Оно просто чаще не получит NULL, его либо
> снимут явным kill ВНУТРИ malloc либо дадут памяти и волшебный пендель
> SIGCONT. Зато это явно безопаснее, чем если далее не будет проверен код
> возврата и будет разыменован NULL.
С точностью до наоборот: появляется ещё одно место, где возможен нелокальный
выход, и дополнительные возможности для атаки (я даже не говорю про DoS).
> Привеите пример ситуации, когда ответ "сейчас нет, жду" хуже чем
> "нет памяти"?
С ходу:
pthread_mutex_lock(&mutex);
result = realloc(global_buf, size*2); /* и тут закончилась память */
Подробная информация о списке рассылки Devel