История изменений
Исправление 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. Снёс раст нахрен. Такая вот у них забота о безопасности.