|
|
3.78, Аноним (-), 03:28, 06/01/2017 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Погодите пару лет и посмотрите как у Вас сначала аккуртненько не шлют обновления, а потом половина приложений не работает, а потом и во все откажет флеш память.
| |
|
|
|
|
3.7, Аноним (-), 11:18, 30/12/2016 [^] [^^] [^^^] [ответить] [к модератору]
| –9 +/– |
Нужно просто, чтобы был человек, который идеально обращается с опасной бритвой. И чтобы с бритвой работали только через него. Примерно как JVM безопасно работает с памятью, а все остальные только через него.
| |
|
4.10, Michael Shigorin (ok), 11:39, 30/12/2016 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +5 +/– |
> Нужно просто, чтобы был человек, который идеально обращается с опасной бритвой.
Это путь сперва специализации, а затем деградации -- ну, когда надо писать в руководствах к стиралкам, что кошек в них стирать низзя, чтоб деграданты не засудили.
| |
|
|
6.16, Куяврег (?), 12:57, 30/12/2016 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +4 +/– |
нужно заметить что специализация и универсализация одновременно существуют. ну как анализ и синтез. и утверждать, что развитие зависит только от специализации, подобно как развитие зависит только от анализа - неверно
| |
|
7.19, Аноним (-), 13:10, 30/12/2016 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| –3 +/– |
Шигорин чутка позабыл о том, что весь UNIX построен на принципе специализации: пусть каждая программа делает только одну вещь, но делает это хорошо. То же самое можно сказать и о работе с памятью. Надежнее доверить это дело JVM.
| |
7.48, Аноним (-), 22:08, 30/12/2016 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
Да-да… ты это современным работодателям на территории exUSSR расскажи… а то ж они не знают, желая всё как один себе универсальных солдат за мизер денег.
| |
|
6.67, Аноним (-), 23:40, 31/12/2016 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
> Специализация - это цивилизация. Отсутствие специализации было во времена жизни в пещерах.
А Valve почему-то нрвятся T-shaped people. Наверное специализация должна быть как-то так. А то не круто когда человек вроде бы хороший програмер но понятия не имеет как настроить почтарь. Да, видал такого - этот чудак цитировать нормально не мог и переписка с ним сильно клинила рабочие процессы остальным.
| |
6.68, iZEN (ok), 00:39, 01/01/2017 [^] [^^] [^^^] [ответить] [к модератору]
| –3 +/– |
> Специализация - это цивилизация. Отсутствие специализации было во времена жизни в пещерах.
Любой человек должен уметь менять пелёнки, планировать вторжения, резать свиней, конструировать здания, управлять кораблём, писать сонеты, вести бухгалтерию, возводить стены, вправлять кости, облегчать смерть, исполнять приказы, отдавать приказы, сотрудничать, действовать самостоятельно, решать уравнения, анализировать новые проблемы, вносить удобрения, программировать, вкусно готовить, хорошо сражаться, умирать с достоинством. Специализация — удел насекомых.
Роберт Хайнлайн, «Достаточно времени для любви, или Жизни Лазаруса Лонга»
| |
|
5.26, Илья (??), 14:18, 30/12/2016 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| –1 +/– |
> Это путь сперва специализации, а затем деградации
Ну не скажи. Бизнес-логику очень сложно мешать с низкоуровневыми вызовами. Да и не нужно.
| |
|
6.33, Michael Shigorin (ok), 15:28, 30/12/2016 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
>> Это путь сперва специализации, а затем деградации
> Ну не скажи. Бизнес-логику очень сложно мешать с низкоуровневыми вызовами.
Сперва да, а затем "у нас БУЗИНЕС, шо вы со своей безопасностью впёрлись!" (до поры).
| |
|
7.70, Аноним (-), 01:39, 01/01/2017 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Сперва да, а затем "у нас БУЗИНЕС, шо вы со своей безопасностью
> впёрлись!" (до поры).
Бывает и другой полюс, как в том рассказе про хакера и столовую. Когда все ресурсы брошены на заякоривание солонок на супернадежные цепи. На остальное ресурсов не остается или остается мало. С понятным результатом. Безопасность - хорошо. Но если перебдеть то переклин на безопасности может застопорить вообще все работы. Потому что жить вредно и опасно. От этого умирают, гарантия 100%.
| |
|
|
5.29, Comdiv (ok), 14:58, 30/12/2016 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| –1 +/– |
> чтоб деграданты не засудили.
Засуживают как раз не деграданты, а злоумышленники, находящие уязвимости в юридической защите компании-производителя. Ну а к сути специализации этот пример вообще не имеет отношения.
| |
|
|
|
|
3.13, Michael Shigorin (ok), 12:00, 30/12/2016 [^] [^^] [^^^] [ответить] [к модератору]
| +3 +/– |
> Бот, уйди.
Это вряд ли бот -- скорее человек, который купился на тыканье в проблемы (вполне реальные) языков с ручным управлением памятью и рекламу (обычно лукавую) языков с автоматическим управлением памятью.
А ведь это несколько классов проблем, которые размениваются на другие классы проблем -- и не отменяют третьих, что порой и подводит уверовавших в "это же безопасный язык"...
| |
|
4.32, Comdiv (ok), 15:02, 30/12/2016 [^] [^^] [^^^] [ответить] [к модератору]
| –2 +/– |
> рекламу (обычно лукавую) языков с автоматическим управлением памятью.
Можете чуть конкретней рассказать про лукавую рекламу? Где её видели, когда и как оценивали объём отностительно нелукавой рекламы?
| |
|
5.34, Michael Shigorin (ok), 15:29, 30/12/2016 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
>> рекламу (обычно лукавую) языков с автоматическим управлением памятью.
> Можете чуть конкретней рассказать про лукавую рекламу?
Например, когда играют на предположениях и "логичных" выводах; когда рассказывают о решаемых проблемах, но умалчивают о создаваемых взамен.
> Где её видели, когда и как оценивали объём отностительно нелукавой рекламы?
Много где, и здесь нередко; на глазок, благо пристрелямши.
| |
|
|
|
2.27, Аноним (-), 14:22, 30/12/2016 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| –1 +/– |
Пример небольшого ошибочного кода:
int x;
printf("Введите первое число: ");
scanf("%d", &x);
int y;
printf("Введите второе число: ");
scanf("%d", &y);
printf("Сумма двух чисел: %d\n", x + y);
Здесь 3 серьёзные ошибки. Кто-нибудь сможет найти все 3? Две, думаю, найдёт большинство знающих Си.
| |
|
3.28, Crazy Alex (ok), 14:52, 30/12/2016 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +1 +/– |
Отсутствие обработки ошибок scanf (в частности, кривого ввода), интовое переполнение при сложении и UB при слишком большом введенном числе. Причём последнее не лечится.
| |
|
|
|
6.46, Crazy Alex (ok), 20:11, 30/12/2016 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Да. Что это я, в самом деле. Но тогда не представляю, какая
> там третья ошибка.
Решил таки проверить - а вот таки есть подвох, не зря мне мерещилось.
Вот это:
r = scanf("%d", &x);
printf("r=%d\n", r);
радостно печатает единичку при вводе чего-то аски длинного вроде 11111111111111111111111111 (что означает, что один элемент был успешно распарсен), при этом в x попадает -1.
Если делать как положено:
errno = 0;
r = scanf("%d", &x);
err = errno;
printf("r=%d, errno=%d\n", r, err);
то ERANGE ловится отлично.
| |
|
7.58, Аноним (-), 09:34, 31/12/2016 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Насчёт трёх ошибок Вы правильно определили. Да, их всего там было 3. Пропущено две обработки ошибок и нет проверки на переполнение. Подразумевалось, что ввод слишком большого числа - это частный случай обработки ошибок, поэтому отдельной ошибкой его считать бессмысленно.
| |
7.60, Аноним (-), 09:44, 31/12/2016 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> errno = 0;
> r = scanf("%d", &x);
Кстати, устанавливать errno в данном случае в 0 было абсолютно бессмысленно, т.к. он выставляется только при возвращении функцией значения -1. Достаточно проверять возвращаемое значение.
| |
|
|
|
|
|
|
5.45, Crazy Alex (ok), 20:01, 30/12/2016 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Разумеется - читаем в буфер, токенизируем (а то и полноценный разбор), потому преобразования. Ситуации, когда это не нужно - экзотика, в общем-то.
Насчёт errno - вообще чушь, простите. Устанавливайте его в 0 непосредственно до вызова функции, проверйте сразу после - и всё отловите.
| |
|
6.59, Аноним (-), 09:41, 31/12/2016 [^] [^^] [^^^] [ответить] [к модератору]
| +2 +/– |
> Насчёт errno - вообще чушь, простите. Устанавливайте его в 0 непосредственно до
> вызова функции, проверйте сразу после - и всё отловите.
Вот в этом то и вся суть. Об этой особенности мало кто знает. Подобные ситуации и ведут за собой код с ошибками. Поэтому считаю, что необходимо популяризовать подобные примеры ошибочного кода с объяснениями. Т.к. новость про уязвимость в библиотеке на языке Си, с большой вероятностью сюда могут заходить люди знающие язык Си на достаточно хорошем уровне. Возможно, кто-то узнает для себя что-либо полезное.
| |
|
|
|
|
2.43, Аноним (-), 19:13, 30/12/2016 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| –2 +/– |
> Вот тебе и безопасный си...
Ну, понимаешь, "либы" на бидоне спросом не пользуются. Хотя-бы потому что кроме как из бидона ниоткуда и не вызываются.
А так вон в вебне ломают и без всяких сей. WormPress даже обозвали характерно. За это самое.
| |
|
|
4.71, Аноним (-), 01:43, 01/01/2017 [^] [^^] [^^^] [ответить] [к модератору]
| –2 +/– |
> Казалось бы, причем тут бидоны, но ... кто о чем, а подгорающий
> о своем, о неосиленном^W наболевшем.
Судя по вашему коменту - вам виднее.
> И откуда вы такие, ыкспертные знатоки всего и вся, беретесь только?
> [CODE]#include <Python.h>
И все бы это замечательно, но это - не сишная либа. А если уж HTTP сервер из сей хочется - так есть lwan, без горбатой питонятины с ее версиепроблемами и прочими радостями. И быстрый как понос к тому же.
| |
|
5.73, Аноним (-), 04:47, 01/01/2017 [^] [^^] [^^^] [ответить] [к модератору]
| +4 +/– |
>>> "либы" на бидоне спросом не пользуются. Хотя-бы потому что кроме как из бидона ниоткуда и не вызываются.
> И все бы это замечательно, но это - не сишная либа.
То либа на бидоне кроме как из бидона ниоткуда не вызывается, то это вдруг уже не сишная либа.
> А если уж HTTP сервер из сей хочется - так есть lwan,
В общем, зачетный юлеж.
| |
|
|
7.75, Аноним (-), 16:25, 01/01/2017 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
>> То либа на бидоне кроме как из бидона ниоткуда не вызывается, то
>> это вдруг уже не сишная либа.
> Я не знаю как еще понятнее тебе объяснить что сишники такой "либой"
> пользоваться не будут.
Видишь ли, о великий знаток всего и вся, "не будут" и "не смогут" - две большие разницы.
https://docs.python.org/3/extending/embedding.html
>> В общем, зачетный юлеж.
> Так не юли. Твои кривые эрзацы типа-либ мало кому нужны.
Классно ты срулил с темы. Хотя тебя за язык вроде никто не тянул. Не нес бы, как обычно, с умным видом очередной бред и глядишь, не пришлось бы в очередной раз изворачиваться и переводить стрелки.
| |
|
|
|
|
|
|
|
2.17, Куяврег (?), 12:59, 30/12/2016 [^] [^^] [^^^] [ответить] [к модератору]
| +4 +/– |
> Миллионы пар попенсорц-глаз 20 лет искали уязвимость.
нужно было прятать код - это точно решает все проблемы
| |
2.20, Аноним (-), 13:11, 30/12/2016 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
21
> The current public release, libpng 1.6.27, fixes a 21-year-old null- pointer dereference (see warning below) and includes some minor build tweaks. | |
|
|