|
|
3.13, Kuromi (ok), 23:13, 24/02/2021 [^] [^^] [^^^] [ответить] [п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б┴┬ п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б┴╔п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б▄║п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б√⌠п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔я▐Б√▓я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б√═Б■─п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔я├Б∙╔я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б┬ Б■■п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б▄║я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б√═Б■─я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б┬ Б√▓]
| +/– |
> На трубках Гугла рутование не требуется, загрузчик там разблокируется полностью в оффлайне,
> не то что всякое говно от корпорации, корни которой растут в
> китайском ВПК и которую обещал вымести поганой метлой, но обещание не
> сдержал, один популист-политикан.
Разблокировка загрузчика не рутует трубку автоматом. А что до Хуавея, то не так уж давно они были как раз таки очень дружелюбны к альтернативным прошивкам и даже помогали их разработчикам, а потмо РРАЗ и "Альтернативные прошивки низкого качества что вредит нашему бренду, поэтому сервис разблокировки мы закрываем, а еще так безопаснее, да, безопаснее"
| |
|
|
1.17, Ordu (ok), 23:24, 24/02/2021 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б┴┬ п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б┴╔п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б▄║п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б√⌠п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔я▐Б√▓я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б√═Б■─п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔я├Б∙╔я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б┬ Б■■п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б▄║я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б√═Б■─я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б┬ Б√▓]
| +4 +/– |
> Главной задачей Густаво станет устранение некоторых классов переполнений буфера, путём замены всех экземпляров массивов, имеющих нулевую длину или содержащих только один элемент, на безразмерное объявление массивов (Flexible Array Member).
А в чём собственно фишка такой защиты? Как это призвано работать? Насколько я помню, эти flexible array в C совершенно оторванная от жизни придумка, которая ни на что не влияет. Она не запрещает, например, создать на стеке структуру с flexible array внутре, она не запрещает передать эту структуру по значению в функцию, или вернуть такую структуру по значению из функции. То есть она не запрещает программисту выполнять операции сомнительной осмысленности. Или сегодня gcc какие-нибудь варнинги кидает об этом, которые можно объявить ошибками, и таким образом запретить компилировать сомнительный код?
По-моему, flexible array создаёт проблем программисту лишь одним способом: flexible тип может быть только последним членом структуры, и соответственно попытки упаковать два flexible типа в одну структуру обламываются на этапе компиляции.
Впрочем, это я по памяти всё воспроизвожу, а давно это было... Реквестирую в тред специалистов, знающих стандарты C и коды ошибок gcc наизусть, которые могут прояснить ситуацию.
То есть, привести весь код к единым стандартам, и везде использовать flexible array, вместо того, чтобы где-то использовать [0], где-то [1], а где-то [] -- это ловля блох, которую надо выполнять иногда, но... эмм... чтоб это повлияло существенно на качество кода? Разве?
| |
|
|
|
|
5.118, Ordu (ok), 18:15, 26/02/2021 [^] [^^] [^^^] [ответить] [п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б┴┬ п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б┴╔п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б▄║п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б√⌠п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔я▐Б√▓я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б√═Б■─п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔я├Б∙╔я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б┬ Б■■п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б▄║я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б√═Б■─я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б┬ Б√▓]
| +/– |
> Ааа, понял. Спасибо. Я думал flexible array — это какое-то расширение. Ну
> да, такие структуры сразу в голову и приходят, когда хочется создать
> массив переменной длины. Только char data[] — это вроде не в
> том же смысле массив переменной длины, его длина будет зависеть от
> длины скормленных при инициализации данных и менятся не может.
Нну да, не может. Но с точки зрения компилятора длина массива "неизвестная" величина. Люди используют слова "переменная" и "неизвестная" взаимозаменяемо, но нельзя от всех требовать, чтобы они всегда формально строго математично употребляли термины.
| |
|
|
|
|
|