Павлу Дворкину: о понимании того что делаешь и простых прави
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 05.11.09 13:58
Оценка: 2 (1) -3 :)
Не так давно от Павла прозвучало
Автор: Pavel Dvorkin
Дата: 18.10.09
следующее:

Я бы так сказал — язык С++ дает мне свободу делать все, что я хочу. А это неизбежно сопряжено с возможностью сделать и ошибку. Чтобы свободой как следует воспользоваться, надо хорошо понимать, что при этом можно, и что нельзя делать.


Я вот сижу и думаю, а может ну ее нафиг эту свободу, а? А то получится как с ядром линукса
Автор: kochetkov.vladimir
Дата: 05.11.09
:

pipe_read_open(struct inode *inode, struct file *filp)
{
    mutex_lock(&inode->i_mutex);
    inode->i_pipe->readers++;
    mutex_unlock(&inode->i_mutex);
    return 0;
}


а не

pipe_read_open(struct inode *inode, struct file *filp)
{
    int ret = -ENOENT;
    mutex_lock(&inode->i_mutex);
    if (inode->i_pipe) {
        ret = 0;
        inode->i_pipe->readers++;
    }
    mutex_unlock(&inode->i_mutex);
    return ret;
}


и приплыли — уязвимы все версии ядра линукса с 2001 года (хорошо хоть не во всех дистрибутивах)... И я не думаю, что писавший первоначальный вариант кода не понимал "что при этом можно, и что нельзя делать", он скорее просто не предполагал, что в другом процессе все же может произойти вызов free_pipe_info(), освобождающий i_pipe до того, как был установлен мьютекс.

"Суслика видите? А он есть..."

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re: Павлу Дворкину: о понимании того что делаешь и простых п
От: Pavel Dvorkin Россия  
Дата: 05.11.09 14:07
Оценка: :)
Здравствуйте, kochetkov.vladimir, Вы писали:

Ну спасибо. Чтобы мое имя прямо-таки профигурировало в названии топика — такого еще не было. Да и других тоже что-то не упомню, хотя были, наверное, но не часто.

По существу отвечу завтра, надо и подумать, да и поздно уже. У меня как раз примерно час поездки домой, успею продумать.

KV>Не так давно от Павла прозвучало
Автор: Pavel Dvorkin
Дата: 18.10.09
следующее:


KV>

KV>Я бы так сказал — язык С++ дает мне свободу делать все, что я хочу. А это неизбежно сопряжено с возможностью сделать и ошибку. Чтобы свободой как следует воспользоваться, надо хорошо понимать, что при этом можно, и что нельзя делать.


KV>Я вот сижу и думаю, а может ну ее нафиг эту свободу, а? А то получится как с ядром линукса
Автор: kochetkov.vladimir
Дата: 05.11.09
:


Ну а по поводу линукса вообще и этого примера в частности — no comments, так как не имею в с ним дела. Впрочем, это лишь пример, как я понимаю, но в своем ответе я его обсуждать не буду.
With best regards
Pavel Dvorkin
Re[2]: Павлу Дворкину: о понимании того что делаешь и просты
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 05.11.09 14:19
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Здравствуйте, kochetkov.vladimir, Вы писали:

PD>Ну спасибо. Чтобы мое имя прямо-таки профигурировало в названии топика — такого еще не было. Да и других тоже что-то не упомню, хотя были, наверное, но не часто.

А вот так. Шеридан например, уже привык.

PD>По существу отвечу завтра, надо и подумать, да и поздно уже. У меня как раз примерно час поездки домой, успею продумать.


http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=fs/pipe.c;h=52c4151148383c2e9cd89f891e322241e110d3c1 — если вдруг для подумать понадобится


PD>Ну а по поводу линукса вообще и этого примера в частности — no comments, так как не имею в с ним дела.


Это не только линукс, но еще и си без плюсов, если чего. Хотя в данном контексте — не суть.

PD>Впрочем, это лишь пример, как я понимаю,


Это именно пример, как можно проглядеть подобную уязвимость на ровном месте.

PD>но в своем ответе я его обсуждать не буду.


Прикольно, а зачем по-твоему я тогда его сюда вставил? Но ок, буду ждать.

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re: Павлу Дворкину: о понимании того что делаешь и простых п
От: CreatorCray  
Дата: 05.11.09 14:20
Оценка: +1
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Я вот сижу и думаю, а может ну ее нафиг эту свободу, а?

Давайте таки оставим программисту право выбора.
Я совершенно разделяю возмущение по поводу описанной баги, но не вижу необходимости в тотальном запрете инструмента только потому, что далеко не все умеют им безопасно пользоваться.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[2]: Павлу Дворкину: о понимании того что делаешь и просты
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 05.11.09 14:33
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>Я вот сижу и думаю, а может ну ее нафиг эту свободу, а?

CC>Давайте таки оставим программисту право выбора.

Ты так говоришь, как будто ее возможно у вас отобрать

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[3]: Павлу Дворкину: о понимании того что делаешь и просты
От: CreatorCray  
Дата: 05.11.09 14:52
Оценка: +1
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Ты так говоришь, как будто ее возможно у вас отобрать

Просто не хочется очередной холивор "что-то vs C(или C++)"
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[4]: Павлу Дворкину: о понимании того что делаешь и просты
От: fddima  
Дата: 05.11.09 14:54
Оценка: +2
Здравствуйте, CreatorCray, Вы писали:

CC>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>Ты так говоришь, как будто ее возможно у вас отобрать

CC>Просто не хочется очередной холивор "что-то vs C(или C++)"
Вопрос стоял иначе, и отбирай-не отбирай — знай-не знай этот инструмент, — как показывает практика, подобные ошибки будут всегда. Вопрос наверное в том — как с ними бороться?
Re: Павлу Дворкину: о понимании того что делаешь и простых п
От: VladD2 Российская Империя www.nemerle.org
Дата: 05.11.09 15:05
Оценка: 3 (2) +3 :)
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Не так давно от Павла прозвучало
Автор: Pavel Dvorkin
Дата: 18.10.09
следующее:


KV>

KV>Я бы так сказал — язык С++ дает мне свободу делать все, что я хочу. А это неизбежно сопряжено с возможностью сделать и ошибку. Чтобы свободой как следует воспользоваться, надо хорошо понимать, что при этом можно, и что нельзя делать.


Я кода прочел "Павел", думал, что ты о Павле Кузнецове .

Что до свободы делать что хочет Дворкин, то у него просто довольно странные желания. Лично мне хочется побыстрее написать программу которая будет работать надежно, стабильно и при этом с приемлемой (а не максимально возможной) производительностью. И я не хочу траха. А вот люди вроде Дворкина считаю, что максимальная производительность — это главный приоритет перекрывающий все остальне. Плюс Дворкин фактически заперт в миру идеом С/С++ и просто не представляет как писать софт по другому. Так что от части его свобода только ему кажется свободой, а на самом деле — это клетка.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Павлу Дворкину: о понимании того что делаешь и просты
От: Alxndr Германия http://www.google.com/profiles/alexander.poluektov#buzz
Дата: 05.11.09 15:26
Оценка: +2
Здравствуйте, fddima, Вы писали:

F> Вопрос стоял иначе, и отбирай-не отбирай — знай-не знай этот инструмент, — как показывает практика, подобные ошибки будут всегда. Вопрос наверное в том — как с ними бороться?


Используя безопасное подмножество языка (или язык) там, где возможно, и небезопасное (или безопасный язык) — там, где необходимо?
Re[2]: Павлу Дворкину: о понимании того что делаешь и просты
От: Spiceman  
Дата: 05.11.09 15:48
Оценка: :)
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Ну спасибо. Чтобы мое имя прямо-таки профигурировало в названии топика — такого еще не было. Да и других тоже что-то не упомню, хотя были, наверное, но не часто.


Оффтоп. Павел Полозюк, например. Молчу, молчу...
Re: Павлу Дворкину: о понимании того что делаешь и простых п
От: GlebZ Россия  
Дата: 05.11.09 16:09
Оценка: 2 (2) +4
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>"Суслика видите? А он есть..."

Уважаемый. А вам не кажется что вышеописанное ортогонально языку, и подобное можно сделать практически на любом языке. Хотя для некоторых придется проявить выдержку, спокойствие и сообразительность?
Re[2]: Павлу Дворкину: о понимании того что делаешь и просты
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 05.11.09 16:45
Оценка:
Здравствуйте, GlebZ, Вы писали:

GZ>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>"Суслика видите? А он есть..."

GZ>Уважаемый. А вам не кажется что вышеописанное ортогонально языку, и подобное можно сделать практически на любом языке.
Ага, пример на .NET в студию.

GZ>Хотя для некоторых придется проявить выдержку, спокойствие и сообразительность?

Там где сборка мусора такое сделать почти невозможно.
Re[2]: Павлу Дворкину: о понимании того что делаешь и просты
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 05.11.09 17:08
Оценка:
Здравствуйте, GlebZ, Вы писали:

GZ>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>"Суслика видите? А он есть..."

GZ>Уважаемый. А вам не кажется что вышеописанное ортогонально языку, и подобное можно сделать практически на любом языке.

Во-первых, исходным был посыл "может ну ее нафиг, эту свободу?" а не призыв уничтожать тот или иной язык. Во-вторых, таки-не кажется. Уязвимости связанные с разыименованиями указателей характерны, мягко-говоря, не для всех существующих языков. Правда, в случае с конкретным приведенным примером, там выбора-то особо и нет

GZ>Хотя для некоторых придется проявить выдержку, спокойствие и сообразительность?


Не, ну при желании можно переполнение буфера и на питоне изобразить, я ж не спорю. (Через внешний модуль, написанный на нативном языке, ага ) Мы ведь говорим о ситуации "недоглядел", а не о "намеренно напихал в свой код уязвимостей"?

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re: Павлу Дворкину: о понимании того что делаешь и простых п
От: A13x США  
Дата: 05.11.09 17:51
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>...

KV>Я вот сижу и думаю, а может ну ее нафиг эту свободу, а?

А может тогда сразу нафиг программирование — и в дворники?
Re[3]: Павлу Дворкину: о понимании того что делаешь и просты
От: CreatorCray  
Дата: 05.11.09 18:35
Оценка:
Здравствуйте, gandjustas, Вы писали:

KV>>>"Суслика видите? А он есть..."

GZ>>Уважаемый. А вам не кажется что вышеописанное ортогонально языку, и подобное можно сделать практически на любом языке.
G>Ага, пример на .NET в студию.
Что то мне кажется что для Влада это не должно составить труда.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[2]: Павлу Дворкину: о понимании того что делаешь и просты
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 05.11.09 20:39
Оценка: +2 :)
Здравствуйте, A13x, Вы писали:

A>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>...

KV>>Я вот сижу и думаю, а может ну ее нафиг эту свободу, а?

A>А может тогда сразу нафиг программирование — и в дворники?


Ну если эта типа свобода (проявление которой, бывает в форме, представленной в исходном сообщении) — это единственное, что держит человека в отрасли, то почему бы и нет?

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[4]: Павлу Дворкину: о понимании того что делаешь и просты
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 06.11.09 01:03
Оценка:
Здравствуйте, CreatorCray, Вы писали:

G>>Ага, пример на .NET в студию.

CC>Что то мне кажется что для Влада это не должно составить труда.

А при чем тут Влад?
... << RSDN@Home 1.2.0 alpha 4 rev. 1260 on Windows 7 6.1.7600.0>>
AVK Blog
Re[3]: Павлу Дворкину: о понимании того что делаешь и просты
От: Pavel Dvorkin Россия  
Дата: 06.11.09 03:39
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:


KV>Прикольно, а зачем по-твоему я тогда его сюда вставил? Но ок, буду ждать.


У меня сейчас лекция, после нее отвечу.

Будь добр, дай мне ссылку на код mutex_lock и описание struct inode и его инициализацию. Мне интересно, как и где мютекс создается.

Кстати, я вижу аналогичный код во многих местах по твоей ссылке, там что, везде уязвимость ?
With best regards
Pavel Dvorkin
Re[5]: Павлу Дворкину: о понимании того что делаешь и просты
От: CreatorCray  
Дата: 06.11.09 06:08
Оценка:
Здравствуйте, AndrewVK, Вы писали:

G>>>Ага, пример на .NET в студию.

CC>>Что то мне кажется что для Влада это не должно составить труда.

AVK>А при чем тут Влад?

Затупил. В янусе предыдущее непрочитанное было от Влада.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re: Павлу Дворкину: о понимании того что делаешь и простых п
От: Tilir Россия http://tilir.livejournal.com
Дата: 06.11.09 07:47
Оценка: 2 (1) +4 -1
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Я вот сижу и думаю, а может ну ее нафиг эту свободу, а?


Не так давно от одного моего друга слесаря прозвучало

Я бы так сказал — токарный станок дает мне свободу делать все, что я хочу. А это неизбежно сопряжено с возможностью сделать и ошибку. Чтобы свободой как следует воспользоваться, надо хорошо понимать, что при этом можно, и что нельзя делать. Например палец туда совать нельзя.


Вместо "палец" он употребил иное слово, но вы понимаете, слесарь...

Он, наверное, глупый и не понимает насколько безопасней ватные тампоны.

Это ядро Linux. Ещё раз -- ядро. Операционной системы. То самое место, где любые "управляемые решения" с JIT, сборкой мусора и прочими подгузниками просто не роляют. Ошибки? Их не бывает только у тех, кто ничего не делает. А свобода программиста, которую даёт C, ну да в том числе и свобода ошибаться, это самое ценное что у меня, например, есть.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.