Я бы так сказал — язык С++ дает мне свободу делать все, что я хочу. А это неизбежно сопряжено с возможностью сделать и ошибку. Чтобы свободой как следует воспользоваться, надо хорошо понимать, что при этом можно, и что нельзя делать.
Я вот сижу и думаю, а может ну ее нафиг эту свободу, а? А то получится как с ядром линукса
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 до того, как был установлен мьютекс.
Ну спасибо. Чтобы мое имя прямо-таки профигурировало в названии топика — такого еще не было. Да и других тоже что-то не упомню, хотя были, наверное, но не часто.
По существу отвечу завтра, надо и подумать, да и поздно уже. У меня как раз примерно час поездки домой, успею продумать.
KV>Не так давно от Павла прозвучало
KV>Я бы так сказал — язык С++ дает мне свободу делать все, что я хочу. А это неизбежно сопряжено с возможностью сделать и ошибку. Чтобы свободой как следует воспользоваться, надо хорошо понимать, что при этом можно, и что нельзя делать.
KV>Я вот сижу и думаю, а может ну ее нафиг эту свободу, а? А то получится как с ядром линукса
Ну а по поводу линукса вообще и этого примера в частности — no comments, так как не имею в с ним дела. Впрочем, это лишь пример, как я понимаю, но в своем ответе я его обсуждать не буду.
With best regards
Pavel Dvorkin
Re[2]: Павлу Дворкину: о понимании того что делаешь и просты
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Здравствуйте, kochetkov.vladimir, Вы писали: PD>Ну спасибо. Чтобы мое имя прямо-таки профигурировало в названии топика — такого еще не было. Да и других тоже что-то не упомню, хотя были, наверное, но не часто.
А вот так. Шеридан например, уже привык.
PD>По существу отвечу завтра, надо и подумать, да и поздно уже. У меня как раз примерно час поездки домой, успею продумать.
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>Я вот сижу и думаю, а может ну ее нафиг эту свободу, а?
Давайте таки оставим программисту право выбора.
Я совершенно разделяю возмущение по поводу описанной баги, но не вижу необходимости в тотальном запрете инструмента только потому, что далеко не все умеют им безопасно пользоваться.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[2]: Павлу Дворкину: о понимании того что делаешь и просты
Здравствуйте, CreatorCray, Вы писали:
CC>Здравствуйте, kochetkov.vladimir, Вы писали:
KV>>Я вот сижу и думаю, а может ну ее нафиг эту свободу, а? CC>Давайте таки оставим программисту право выбора.
Ты так говоришь, как будто ее возможно у вас отобрать
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>Ты так говоришь, как будто ее возможно у вас отобрать
Просто не хочется очередной холивор "что-то vs C(или C++)"
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[4]: Павлу Дворкину: о понимании того что делаешь и просты
Здравствуйте, CreatorCray, Вы писали:
CC>Здравствуйте, kochetkov.vladimir, Вы писали:
KV>>Ты так говоришь, как будто ее возможно у вас отобрать CC>Просто не хочется очередной холивор "что-то vs C(или C++)"
Вопрос стоял иначе, и отбирай-не отбирай — знай-не знай этот инструмент, — как показывает практика, подобные ошибки будут всегда. Вопрос наверное в том — как с ними бороться?
Re: Павлу Дворкину: о понимании того что делаешь и простых п
KV>Я бы так сказал — язык С++ дает мне свободу делать все, что я хочу. А это неизбежно сопряжено с возможностью сделать и ошибку. Чтобы свободой как следует воспользоваться, надо хорошо понимать, что при этом можно, и что нельзя делать.
Я кода прочел "Павел", думал, что ты о Павле Кузнецове .
Что до свободы делать что хочет Дворкин, то у него просто довольно странные желания. Лично мне хочется побыстрее написать программу которая будет работать надежно, стабильно и при этом с приемлемой (а не максимально возможной) производительностью. И я не хочу траха. А вот люди вроде Дворкина считаю, что максимальная производительность — это главный приоритет перекрывающий все остальне. Плюс Дворкин фактически заперт в миру идеом С/С++ и просто не представляет как писать софт по другому. Так что от части его свобода только ему кажется свободой, а на самом деле — это клетка.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Павлу Дворкину: о понимании того что делаешь и просты
Здравствуйте, fddima, Вы писали:
F> Вопрос стоял иначе, и отбирай-не отбирай — знай-не знай этот инструмент, — как показывает практика, подобные ошибки будут всегда. Вопрос наверное в том — как с ними бороться?
Используя безопасное подмножество языка (или язык) там, где возможно, и небезопасное (или безопасный язык) — там, где необходимо?
Re[2]: Павлу Дворкину: о понимании того что делаешь и просты
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Ну спасибо. Чтобы мое имя прямо-таки профигурировало в названии топика — такого еще не было. Да и других тоже что-то не упомню, хотя были, наверное, но не часто.
Оффтоп. Павел Полозюк, например. Молчу, молчу...
Re: Павлу Дворкину: о понимании того что делаешь и простых п
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>"Суслика видите? А он есть..."
Уважаемый. А вам не кажется что вышеописанное ортогонально языку, и подобное можно сделать практически на любом языке. Хотя для некоторых придется проявить выдержку, спокойствие и сообразительность?
Re[2]: Павлу Дворкину: о понимании того что делаешь и просты
Здравствуйте, GlebZ, Вы писали:
GZ>Здравствуйте, kochetkov.vladimir, Вы писали:
KV>>"Суслика видите? А он есть..." GZ>Уважаемый. А вам не кажется что вышеописанное ортогонально языку, и подобное можно сделать практически на любом языке.
Ага, пример на .NET в студию.
GZ>Хотя для некоторых придется проявить выдержку, спокойствие и сообразительность?
Там где сборка мусора такое сделать почти невозможно.
Re[2]: Павлу Дворкину: о понимании того что делаешь и просты
Здравствуйте, GlebZ, Вы писали:
GZ>Здравствуйте, kochetkov.vladimir, Вы писали:
KV>>"Суслика видите? А он есть..." GZ>Уважаемый. А вам не кажется что вышеописанное ортогонально языку, и подобное можно сделать практически на любом языке.
Во-первых, исходным был посыл "может ну ее нафиг, эту свободу?" а не призыв уничтожать тот или иной язык. Во-вторых, таки-не кажется. Уязвимости связанные с разыименованиями указателей характерны, мягко-говоря, не для всех существующих языков. Правда, в случае с конкретным приведенным примером, там выбора-то особо и нет
GZ>Хотя для некоторых придется проявить выдержку, спокойствие и сообразительность?
Не, ну при желании можно переполнение буфера и на питоне изобразить, я ж не спорю. (Через внешний модуль, написанный на нативном языке, ага ) Мы ведь говорим о ситуации "недоглядел", а не о "намеренно напихал в свой код уязвимостей"?
Здравствуйте, gandjustas, Вы писали:
KV>>>"Суслика видите? А он есть..." GZ>>Уважаемый. А вам не кажется что вышеописанное ортогонально языку, и подобное можно сделать практически на любом языке. G>Ага, пример на .NET в студию.
Что то мне кажется что для Влада это не должно составить труда.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[2]: Павлу Дворкину: о понимании того что делаешь и просты
Здравствуйте, A13x, Вы писали:
A>Здравствуйте, kochetkov.vladimir, Вы писали:
KV>>... KV>>Я вот сижу и думаю, а может ну ее нафиг эту свободу, а?
A>А может тогда сразу нафиг программирование — и в дворники?
Ну если эта типа свобода (проявление которой, бывает в форме, представленной в исходном сообщении) — это единственное, что держит человека в отрасли, то почему бы и нет?
Здравствуйте, AndrewVK, Вы писали:
G>>>Ага, пример на .NET в студию. CC>>Что то мне кажется что для Влада это не должно составить труда.
AVK>А при чем тут Влад?
Затупил. В янусе предыдущее непрочитанное было от Влада.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re: Павлу Дворкину: о понимании того что делаешь и простых п
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>Я вот сижу и думаю, а может ну ее нафиг эту свободу, а?
Не так давно от одного моего друга слесаря прозвучало
Я бы так сказал — токарный станок дает мне свободу делать все, что я хочу. А это неизбежно сопряжено с возможностью сделать и ошибку. Чтобы свободой как следует воспользоваться, надо хорошо понимать, что при этом можно, и что нельзя делать. Например палец туда совать нельзя.
Вместо "палец" он употребил иное слово, но вы понимаете, слесарь...
Он, наверное, глупый и не понимает насколько безопасней ватные тампоны.
Это ядро Linux. Ещё раз -- ядро. Операционной системы. То самое место, где любые "управляемые решения" с JIT, сборкой мусора и прочими подгузниками просто не роляют. Ошибки? Их не бывает только у тех, кто ничего не делает. А свобода программиста, которую даёт C, ну да в том числе и свобода ошибаться, это самое ценное что у меня, например, есть.