LINUX.ORG.RU

История изменений

Исправление Stanson, (текущая версия) :

но отработать ситуацию ты как-то должен предсказуемым образом, а не как повезёт.

Пока что кроме дебильных предложений начсёт return или abort, которые делают поведение программы менее предсказуемым и на пустом месте приводят к появлению нежелательных побочных эффектов я тут ничего не видел.

Сишник, который считает, что срать мимо буфера — норма

Я никогда такого не утверждал, вообще-то.

продолжать упираться, что у тебя в коде всё хорошо — дурной тон.

Где и когда я утверждал что-то подобное?

Наоборот, уже несколько дней пытаюсь узнать, и как же по мнению радетелей за «безопасность» нужно исправить эту ошибку. Не в смысле «свою жопу прикрыть чтобы за мой кусочек кода который меня заставили написать никто не заругал», а в смысле реального, продуманного намного дальше этого кусочка кода решения, которое как минимум не приведёт ни к каким нежелательным побочным эффектам, а как максимум увеличит полезность софтины в целом.

Но нет, вообще никто из них дальше этих нескольких строчек видеть напрочь неспособен.

И даже когда я сам написал, как на самом деле можно грамотно и с пользой обработать эту ситуацию, продолжаются вопли про «надо немедленно return/abort».

Прикол вовсе не в том, что ситуация в которой эта ошибка вообще может возникнуть полностью высосана из пальца. Весь прикол в том, что радетели за «безопасность» просто принципиально неспособны думать чуть шире чем идиотский паттерн «ошибка - делаем return/abort». Никто даже и не подумал предложить что-то типа очевидного if( ret < 0 ) goto out_rename.

Логично предположить, что по неким причинам, мимокрокодилов, топящих за безопасные язычки, волнует исключительно соблюдение неких формальных правил в сильно ограниченном scope, и абсолютно никак не волнует то, к каким эффектам во всём остальном это может привести.

Такой подход легко может давать формально безопасный на микроуровне код, который совершенно непредсказуем и ужасен на макроуровне. Что мы и наблюдаем на примере бессмысленных по большей части крупиц софта написанного на их «безопасных» язычках.

Опять же о безопасности. Вот чисто ради прикола накатил раст, с большим трудом нашёл на жидхабе хоть что-то неабстрактное на расте (тупейший мост MODBUS TCP<>RTU) и запустил cargo build --release. Это чудесное поделие немедленно и без спросу полезло в интернет скачивать что-то с crates.io. Снёс раст нахрен. Такая вот у них забота о безопасности. Возможно это самая безопасная в смысле локальных ошибок программиста реализация MODBUS’ного моста, но про безопасность всего этого в целом они не задумались вообще ни на секунду. Мне софт написанный кренделями с таким образом мышления нафиг не нужен, будь он хоть абсолютно идеальным с точки зрения локальных ошибок в коде.

Исправление Stanson, :

но отработать ситуацию ты как-то должен предсказуемым образом, а не как повезёт.

Пока что кроме дебильных предложений начсёт return или abort, которые делают поведение программы менее предсказуемым и на пустом месте приводят к появлению нежелательных побочных эффектов я тут ничего не видел.

Сишник, который считает, что срать мимо буфера — норма

Я никогда такого не утверждал, вообще-то.

продолжать упираться, что у тебя в коде всё хорошо — дурной тон.

Где и когда я утверждал что-то подобное?

Наоборот, уже несколько дней пытаюсь узнать, и как же по мнению радетелей за «безопасность» нужно исправить эту ошибку. Не в смысле «свою жопу прикрыть чтобы за мой кусочек кода который меня заставили написать никто не заругал», а в смысле реального, продуманного намного дальше этого кусочка кода решения, которое как минимум не приведёт ни к каким нежелательным побочным эффектам, а как максимум увеличит полезность софтины в целом.

Но нет, вообще никто из них дальше этих нескольких строчек видеть напрочь неспособен.

И даже когда я сам написал, как на самом деле можно грамотно и с пользой обработать эту ситуацию, продолжаются вопли про «надо немедленно return/abort».

Прикол вовсе не в том, что ситуация в которой эта ошибка вообще может возникнуть полностью высосана из пальца. Весь прикол в том, что радетели за «безопасность» просто принципиально неспособны думать чуть шире чем идиотский паттерн «ошибка - делаем return/abort». Никто даже и не подумал предложить что-то типа очевидного if( ret < 0 ) goto out_rename.

Логично предположить, что по неким причинам, мимокрокодилов, топящих за безопасные язычки, волнует исключительно соблюдение неких формальных правил в сильно ограниченном scope, и абсолютно никак не волнует то, к каким эффектам во всём остальном это может привести.

Такой подход легко может давать формально безопасный на микроуровне код, который совершенно непредсказуем и ужасен на макроуровне. Что мы и наблюдаем на примере бессмысленных по большей части крупиц софта написанного на их «безопасных» язычках.

Опять же о безопасности. Вот чисто ради прикола накатил раст, с большим трудом нашёл на жидхабе хоть что-то неабстрактное на расте (тупейший мост MODBUS TCP<>RTU) и запустил cargo build --release. Это чудесное поделие немедленно и без спросу полезло в интернет скачивать что-то с crates.io. Снёс раст нахрен. Такая вот у них забота о безопасности. Возможно это самая безопасная в смысле локальных ошибок программиста реализация MODBUS’ного моста, но про безопасность вцелом они не задумались вообще ни на секунду. Мне софт написанный кренделями с таким образом мышления нафиг не нужен, будь он хоть абсолютно идеальным с точки зрения локальных ошибок в коде.

Исправление Stanson, :

но отработать ситуацию ты как-то должен предсказуемым образом, а не как повезёт.

Пока что кроме дебильных предложений начсёт return или abort, которые делают поведение программы менее предсказуемым и на пустом месте приводят к появлению нежелательных побочных эффектов я тут ничего не видел.

Сишник, который считает, что срать мимо буфера — норма

Я никогда такого не утверждал, вообще-то.

продолжать упираться, что у тебя в коде всё хорошо — дурной тон.

Где и когда я утверждал что-то подобное?

Наоборот, уже несколько дней пытаюсь узнать, и как же по мнению радетелей за «безопасность» нужно исправить эту ошибку. Не в смысле «свою жопу прикрыть чтобы за мой кусочек кода который меня заставили написать никто не заругал», а в смысле реального, продуманного намного дальше этого кусочка кода решения, которое как минимум не приведёт ни к каким нежелательным побочным эффектам, а как максимум увеличит полезность софтины в целом.

Но нет, вообще никто из них дальше этих нескольких строчек видеть напрочь неспособен.

И даже когда я сам написал, как на самом деле можно грамотно и с пользой обработать эту ситуацию, продолжаются вопли про «надо немедленно return/abort».

Прикол вовсе не в том, что ситуация в которой эта ошибка вообще может возникнуть полностью высосана из пальца. Весь прикол в том, что радетели за «безопасность» просто принципиально неспособны думать чуть шире чем идиотский паттерн «ошибка - делаем return/abort». Никто даже и не подумал предложить что-то типа очевидного if( ret < 0 ) goto out_rename.

Логично предположить, что по неким причинам, мимокрокодилов, топящих за безопасные язычки, волнует исключительно соблюдение неких формальных правил в сильно ограниченном scope, и абсолютно никак не волнует то, к каким эффектам во всём остальном это может привести.

Такой подход легко может давать формально безопасный на микроуровне код, который совершенно непредсказуем и ужасен на макроуровне. Что мы и наблюдаем на примере бессмысленных по большей части крупиц софта написанного на их «безопасных» язычках.

Опять же о безопасности. Вот чисто ради прикола накатил раст, с большим трудом нашёл на жидхабе хоть что-то неабстрактное на расте (тупейший мост MODBUS TCP<>RTU) и запустил cargo build --release. Это чудесное поделие немедленно и без спросу полезло в интернет скачивать что-то с crates.io. Снёс раст нахрен. Такая вот у них забота о безопасности.

Исходная версия Stanson, :

но отработать ситуацию ты как-то должен предсказуемым образом, а не как повезёт.

Пока что кроме дебильных предложений начсёт return или abort, которые делают поведение программы менее предсказуемым и на пустом месте приводят к появлению нежелательных побочных эффектов я тут ничего не видел.

Сишник, который считает, что срать мимо буфера — норма

Я никогда такого не утверждал, вообще-то.

продолжать упираться, что у тебя в коде всё хорошо — дурной тон.

Где и когда я утверждал что-то подобное?

Наоборот, уже несколько дней пытаюсь узнать, и как же по мнению радетелей за «безопасность» нужно исправить эту ошибку. Не в смысле «свою жопу прикрыть чтобы за мой кусочек кода который меня заставили написать никто не заругал», а в смысле реального, продуманного намного дальше этого кусочка кода решения, которое как минимум не приведёт ни к каким нежелательным побочным эффектам, а как максимум увеличит полезность софтины в целом.

Но нет, вообще никто из них дальше этих нескольких строчек видеть напрочь неспособен.

И даже когда я сам написал, как на самом деле можно грамотно и с пользой обработать эту ситуацию, продолжаются вопли про «надо немедленно return/abort».

Прикол вовсе не в том, что ситуация в которой эта ошибка вообще может возникнуть полностью высосана из пальца. Весь прикол в том, что радетели за «безопасность» просто принципиально неспособны думать чуть шире чем идиотский паттерн «ошибка - делаем return/abort». Никто даже и не подумал предложить что-то типа очевидного if( ret < 0 ) goto out_rename.

Логично предположить, что по неким причинам, мимокрокодилов, топящих за безопасные язычки, волнует исключительно соблюдение неких формальных правил в сильно ограниченном scope, и абсолютно никак не волнует то, к каким эффектам во всём остальном это может привести.

Такой подход легко может давать формально безопасный на микроуровне код, который совершенно непредсказуем и ужасен на макроуровне. Что мы и наблюдаем на примере бессмысленных по большей части крупиц софта написанного на их язычка.

Опять же о безопасности. Ради прикола накатил раст, с большим трудом нашёл на жидхабе хоть что-то неабстрактное на расте (тупейший мост MODBUS TCP<>RTU) и запустил cargo build --release. Это чудесное поделие немедленно и без спросу полезло в интернет скачивать что-то с crates.io. Снёс раст нахрен. Такая вот у них забота о безопасности.